/* GENERATED by tools/build-css-bundles.py from: assets/dist/css/front-end.css, assets/css/gbc-tokens.css, assets/css/gbc-theme.css, assets/css/gbc-gospel.css, assets/css/gbc-heroes.css, assets/css/gbc-photo-heroes.css -- do not edit. Rebuild: py -3 tools/build-css-bundles.py */
/* ==== source: assets/dist/css/front-end.css ==== */
*,:after,:before{box-sizing:border-box;background-repeat:no-repeat}:after,:before{-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;vertical-align:inherit}:where(:root){cursor:default;tab-size:4;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;line-height:1.5}:where(body){margin:0}:where(hr){color:inherit;height:0}:where(nav) :where(ol,ul){padding:0;list-style-type:none}:where(pre){font-family:monospace;font-size:1em;overflow:auto}:where(svg:not([fill])){fill:currentColor}:where(button,[type=button i],[type=reset i],[type=submit i]){appearance:button}:where(textarea){resize:vertical;margin:0}:where([type=search i]){appearance:textfield;outline-offset:-2px}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}::placeholder{color:inherit;opacity:.54}::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}:where(details>summary:first-of-type){display:list-item}:where([aria-busy=true i]){cursor:progress}:where([aria-disabled=true i],[disabled]){cursor:not-allowed}:where([aria-hidden=false i][hidden]){display:initial}:where([aria-hidden=false i][hidden]:not(:focus)){clip:rect(0,0,0,0);position:absolute}@media (prefers-reduced-motion:reduce){*,:after,:before{background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:-1ms!important}}*,:after,:before,html{box-sizing:border-box}img{box-sizing:content-box}.image-background>img,.image-background>img[width][height]{object-fit:cover}.image-background{position:relative;overflow:hidden}.image-background-layer,.image-background>img,.image-background>img[width][height]{z-index:0;width:100%;height:100%;position:absolute;top:0;left:0}:root{--breakpoint-nav:1029px}@media (width<=1590px){:root{--wp--custom--spacing--container-padding-inline:4rem}}@media (width<=700px){:root{--wp--custom--spacing--container-padding-inline:1.25rem}}@media (width<=1030px){:root{--wp--custom--spacing--site-header-padding-block:1.25rem}}@media (width<=1024px){:root{--wp--custom--spacing--grid-gap:2rem}}@media (width<=768px){:root{--wp--custom--spacing--grid-gap:var(--wp--custom--spacing--container-padding-inline);--wp--custom--spacing--container-padding-block:3.125rem}}@media (width<=600px){:root{--wp--custom--spacing--content-padding-block:3.75rem;--wp--custom--spacing--container-padding-block:2.5rem}}.screen-reader-text{clip:rect(1px,1px,1px,1px);clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden;word-wrap:normal!important}.screen-reader-text:focus{opacity:0}.screen-reader-text:focus-visible{background-color:var(--wp--preset--color--white);clip:auto;clip-path:none;font-size:1.0625rem;font-weight:var(--wp--custom--typography--weight-bold);opacity:1;z-index:100000;border-radius:0;width:auto;height:auto;padding:.9375rem 1.4375rem .875rem;line-height:normal;text-decoration:none;display:block;top:.3125rem;left:.3125rem;box-shadow:0 0 2px 2px #17171799}.skip-link{margin:.3125rem}a:focus,button:focus,div[tabindex]:focus,input:focus,select:focus,textarea:focus{opacity:1;outline-offset:.3125rem}@media (prefers-reduced-motion:no-preference){:focus{transition:outline-offset .25s}}.external-link-icon{margin-left:.4375rem;margin-right:2px}@media (width<=600px){.external-link-icon{width:.75rem;height:.75rem;margin-left:4px;transform:translateY(1px)}}.hamburger{--hamburger-layer-height:2px;--hamburger-width:2rem;--hamburger-color:var(--wp--preset--color--black);--hamburger-color-active:var(--wp--preset--color--white);flex-shrink:0;position:relative}.hamburger,.hamburger:after,.hamburger:before{background-color:var(--hamburger-color);height:var(--hamburger-layer-height);width:var(--hamburger-width);transition:all .2s}.hamburger:after,.hamburger:before{content:"";display:block;position:absolute}.hamburger:before{top:-.5625rem}.hamburger:after{bottom:-.5625rem}body:not(.js-nav-active) .nav-toggle .hamburger:after,body:not(.js-nav-active) .nav-toggle:focus .hamburger:after{width:80%}body:not(.js-nav-active) .nav-toggle:hover .hamburger:after{width:100%}.js-nav-active .hamburger:after,.js-nav-active .hamburger:before{background-color:var(--hamburger-color-active);top:0;left:0}.js-nav-active .hamburger:before{transform:rotate(-45deg)}.js-nav-active .hamburger:after{transform:rotate(45deg)}.js-nav-active .hamburger,.nav-toggle{background-color:#0000}.nav-toggle{cursor:pointer;font-weight:var(--wp--custom--typography--weight-semibold);opacity:1;-webkit-user-select:none;user-select:none;z-index:99999;border:0;border-radius:0;justify-content:center;align-items:center;width:4rem;height:4rem;margin:-.5rem -1rem 0 0;padding:0;text-decoration:none;display:flex;position:relative;right:0;overflow:visible}:root{--color-background-nav-mobile-header:var(--wp--preset--color--white);--color-background-nav-mobile-header-active:var(--wp--preset--color--black);--width-navigation:100vw;--color-background-menu-items:var(--wp--custom--color--main);--color-background-menu-items-active:var(--wp--custom--color--main);--color-separator-nav-mobile:#ffffff1a;--color-current-menu-item:var(--wp--preset--color--white);--color-dropdown-toggle-mobile:var(--wp--preset--color--white);--typography-size-main-level-mobile:.9375rem;--typography-weight-main-level-mobile:600;--padding-main-level-vertical-mobile:.75rem;--color-main-level-menu-item-hover-focus-mobile:var(--wp--preset--color--white);--color-main-level-menu-item-mobile:var(--wp--preset--color--white);--typography-size-sub-menu-mobile:.9375rem;--typography-weight-sub-menu-mobile:600;--margin-left-sub-menu:.625rem;--padding-sub-menu-vertical-mobile:.5rem;--padding-sub-menu-horizontal-mobile:var(--wp--custom--spacing--container-padding-inline);--color-sub-menu-mobile:#fffc}@media only screen and (width<=1030px){.menu-items ul{display:none}ul .sub-menu.toggled-on{display:block}}@media screen and (width<=1029px){.site-header{background-color:var(--color-background-nav-mobile-header)}.nav-primary{align-self:center}.site-header a,.site-header li,.site-header ul{position:relative}.disable-scroll{overflow:hidden}.menu-items-wrapper{backface-visibility:hidden;background-color:var(--color-background-menu-items);pointer-events:none;visibility:hidden;height:calc(100vh - 7.2rem);width:var(--width-navigation);z-index:5;padding-bottom:7.5rem;transition:opacity .18s ease-in-out;position:fixed;top:0;right:0;overflow:auto;transform:translate(100%)}.menu-items{margin:16px 0 0}.menu-item a{border-top:1px solid var(--color-separator-nav-mobile);color:var(--color-main-level-menu-item-mobile);font-size:var(--typography-size-main-level-mobile);font-weight:var(--typography-weight-main-level-mobile);padding:var(--padding-main-level-vertical-mobile) var(--padding-sub-menu-horizontal-mobile);z-index:0;margin-left:0;margin-right:0;text-decoration:none;display:block;position:relative}.sub-menu a{color:var(--color-sub-menu-mobile);font-size:var(--typography-size-sub-menu-mobile);font-weight:var(--typography-weight-sub-menu-mobile);padding-bottom:var(--padding-sub-menu-vertical-mobile);padding-left:calc(var(--padding-sub-menu-horizontal-mobile) + var(--margin-left-sub-menu));padding-top:var(--padding-sub-menu-vertical-mobile)}.sub-menu{margin-left:0;padding-left:0}.sub-menu .sub-menu a{padding-left:calc(var(--padding-sub-menu-horizontal-mobile) + var(--margin-left-sub-menu) + var(--margin-left-sub-menu))}.menu-item a:focus,.menu-item a:hover{color:var(--color-main-level-menu-item-hover-focus-mobile)}.menu-item.current-menu-item>a,.menu-item.current-menu-parent>a{color:var(--color-current-menu-item)}.dropdown-toggle{--dropdown-toggle-size:.75rem;color:var(--color-dropdown-toggle-mobile);height:100%;padding:var(--padding-sub-menu-vertical-mobile) calc(var(--padding-sub-menu-horizontal-mobile) - var(--dropdown-toggle-size)/2) var(--padding-sub-menu-vertical-mobile) var(--padding-sub-menu-horizontal-mobile);z-index:100;background-color:#0000;border:0;align-items:center;margin-top:0;display:inline-flex;position:absolute;top:2px;left:auto;right:0;overflow:hidden}.dropdown-toggle svg{height:var(--dropdown-toggle-size);pointer-events:none;width:var(--dropdown-toggle-size);z-index:-1;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' style='width:var(--dropdown-toggle-size);height:var(--dropdown-toggle-size)' viewBox='0 0 10 10'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M5 1.5v7M1.5 5h7'/%3E%3C/svg%3E");background-size:100%;transition:all .15s;position:relative;transform:rotate(0)}.dropdown-toggle svg path{display:none}.dropdown-toggle.toggled-on svg{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' style='width:var(--dropdown-toggle-size);height:var(--dropdown-toggle-size)' viewBox='0 0 10 10'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M1.5 5h7'/%3E%3C/svg%3E");transform:rotate(-180deg)}.dropdown-toggle:hover{cursor:pointer}.dropdown-toggle:focus{cursor:pointer;z-index:100}.sub-menu .dropdown-toggle{color:var(--color-sub-menu-mobile)}.js-nav-active{overflow:hidden}.js-nav-active .menu-items-wrapper{background-color:var(--color-background-menu-items-active);opacity:1;pointer-events:all;visibility:visible;width:var(--width-navigation);transform:translateZ(0)}}@media screen and (width<=782px){.logged-in.admin-bar .menu-items-wrapper{margin-top:46px}}.site-header ul{--color-current:var(--wp--preset--color--black);--color-current-dropdown:var(--wp--preset--color--white);--dropdown-toggle-size:.75rem;--typography-size-main-level:var(--wp--preset--font-size--16);--typography-weight-main-level:var(--wp--custom--typography--weight-semibold);--padding-main-level-horizontal:0;--padding-main-level-vertical:.375rem;--color-main-level:var(--wp--preset--color--black);--color-hover-main-level:var(--wp--custom--color--link-text);--gap-between-dropdown-toggle:.9375rem;--gap-main-level-horizontal:1.5625rem;--typography-size-sub-menu:var(--wp--preset--font-size--16);--typography-weight-sub-menu:var(--wp--custom--typography--weight-semibold);--padding-sub-menu-vertical:.625rem;--padding-sub-menu-link-vertical:.5rem;--padding-sub-menu-link-horizontal:1.25rem;--width-sub-menu:12.5rem;--color-sub-menu:var(--wp--preset--color--white);--color-hover-sub-menu:var(--wp--preset--color--white);--color-background-sub-menu:var(--wp--preset--color--black);--gap-dropdown:1.6rem;width:unset;list-style:none}@media only screen and (width>=1030px){.nav-toggle{display:none}.nav-primary{padding-top:0;padding-bottom:0;line-height:0}.menu-items{align-items:center;column-gap:var(--gap-main-level-horizontal);background-color:#0000;flex-wrap:wrap;justify-content:flex-end;row-gap:.625rem;padding:0;display:flex}.menu-item,.menu-items{margin:0;position:relative}.menu-item-clickable,.menu-item>a{color:var(--color-main-level);font-size:var(--typography-size-main-level);font-weight:var(--typography-weight-main-level);padding:var(--padding-main-level-vertical) var(--padding-main-level-horizontal);white-space:nowrap;align-items:center;margin-left:0;margin-right:0;display:inline-flex}.menu-item .sub-menu a{font-size:var(--typography-size-sub-menu);font-weight:var(--typography-weight-sub-menu);padding:var(--padding-sub-menu-link-vertical) var(--padding-sub-menu-link-horizontal);white-space:normal;align-items:center;width:100%;line-height:1.5;display:inline-flex}.menu-item .sub-menu a,.menu-item .sub-menu button{color:var(--color-sub-menu)}.menu-item .sub-menu{--color-current:var(--color-current-dropdown)}.menu-item.current-menu-item>a,.menu-item.current-menu-parent>a{color:var(--color-current)}.sub-menu .menu-item.current-menu-item>a{text-decoration:underline;text-decoration-thickness:2px}.menu-item.menu-item-has-children a{transition:background-color .2s cubic-bezier(.19,1,.22,1)}.menu-item>a:focus,.menu-item>a:hover{color:var(--color-hover-main-level)}.menu-item .sub-menu a:focus,.menu-item .sub-menu a:hover{color:var(--color-hover-sub-menu);text-decoration:underline;text-decoration-thickness:2px}.menu-item.menu-item-has-children.hover-intent .sub-menu a,.menu-item.menu-item-has-children:focus .sub-menu a{padding-bottom:var(--padding-sub-menu-link-vertical);padding-top:var(--padding-sub-menu-link-vertical)}.menu-item.menu-item-has-children.hover-intent .sub-menu,.menu-item.menu-item-has-children:focus .sub-menu{padding-bottom:var(--padding-sub-menu-vertical);padding-top:var(--padding-sub-menu-vertical)}.nav-primary>ul:first-of-type>.menu-item-has-children:focus:before,.nav-primary>ul:first-of-type>.menu-item-has-children:hover:before{transition:all .2s cubic-bezier(.19,1,.22,1);transform:scale(1)}.no-js .sub-menu{left:unset;display:none;right:0}.no-js .sub-menu .sub-menu{left:unset;right:100%}.no-js .menu-item-has-children:focus-within>.sub-menu,.no-js .menu-item-has-children:focus>.sub-menu,.no-js .menu-item-has-children:hover>.sub-menu{display:block}.js .sub-menu{margin-top:var(--gap-dropdown);opacity:0;visibility:hidden}.js .sub-menu .sub-menu{margin-top:calc(var(--padding-sub-menu-vertical)*-1)}.sub-menu{background-color:var(--color-background-sub-menu);border:1px solid var(--wp--preset--color--black);width:var(--width-sub-menu);z-index:9;margin-left:0;padding:0;transition:all .2s cubic-bezier(.19,1,.22,1);position:absolute;top:100%;left:0}.sub-menu.is-out-of-viewport{left:unset;right:0}.sub-menu .sub-menu.is-out-of-viewport,.sub-menu.is-out-of-viewport .sub-menu{left:unset;right:100%}.sub-menu .sub-menu{margin-left:0;top:0;left:100%}.sub-menu li{padding:0}.menu-item-has-children.hover-intent>.sub-menu,.menu-item-has-children:focus>.sub-menu{opacity:1;visibility:visible;z-index:12;transform:translateY(0)}.menu-item-has-children.hover-intent .sub-menu .sub-menu,.menu-item-has-children:focus .sub-menu .sub-menu{margin-top:calc(var(--padding-sub-menu-vertical)*-1);z-index:10;top:0}.menu-item.menu-item-has-children{align-items:center;gap:var(--gap-between-dropdown-toggle);justify-content:space-between;display:flex;position:relative}.menu-item.menu-item-has-children:after{content:"";height:var(--gap-dropdown);max-width:var(--width-sub-menu);visibility:hidden;width:100%;display:block;position:absolute;top:100%}.menu-item.menu-item-has-children.hover-intent:after{visibility:visible;z-index:100}.dropdown-toggle svg{height:var(--dropdown-toggle-size);width:var(--dropdown-toggle-size);transition:all .35s cubic-bezier(.19,1,.22,1)}.hover-intent>.dropdown-toggle svg{transform:rotateX(180deg)}.dropdown-toggle{pointer-events:none;background-color:#0000;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.sub-menu .dropdown-toggle{width:1.875rem}.sub-menu .dropdown-toggle svg{transform:rotate(-90deg)rotateX(0)}.sub-menu .hover-intent>.dropdown-toggle>svg{transform:rotate(-90deg)rotateX(180deg)}.sub-menu .menu-item-has-children:after{display:none}.menu-item.menu-item-has-children.hover-intent>.dropdown-toggle svg,.menu-item.menu-item-has-children:focus>.dropdown-toggle svg{transform:translateY(0)rotate(180deg)}.menu-item.menu-item-has-children .menu-item.menu-item-has-children.hover-intent>.dropdown-toggle svg,.menu-item.menu-item-has-children .menu-item.menu-item-has-children:focus>.dropdown-toggle svg{transform:translateY(0)rotate(90deg)}}@media only screen and (width>=1030px) and (width<=1030px){ul li:focus>ul,ul li:hover>ul{display:block}}.is-root-container,body:not(.wp-admin){color:var(--wp--custom--color--paragraph);font-family:var(--wp--preset--font-family--main);font-size:var(--wp--preset--font-size--18);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-weight:var(--wp--custom--typography--weight-paragraph);line-height:var(--wp--custom--typography--paragraph-line-height);text-rendering:geometricprecision}.block{background-color:var(--wp--preset--color--white);margin:0 auto;position:relative}.global-link{z-index:3;width:100%;height:100%;position:absolute;top:0;left:0}.site{max-width:100%;min-height:100vh;margin-left:auto;margin-right:auto;position:relative;overflow:hidden}.container{max-width:var(--wp--custom--grid-base);padding:var(--wp--custom--spacing--container-padding-block) var(--wp--custom--spacing--container-padding-inline);margin:0 auto}.edit-link,.edit-link:last-child{--color-link-edit-border:#ddd;--color-link-edit-text:#555;--color-link-edit-text-hover:#fff;--color-link-edit-background-hover:#aaa;--color-link-edit-border-hover:#aaa;max-width:var(--wp--custom--grid-base);text-align:left;width:100%;min-width:0;margin:1.25rem auto;transition:all .15s;display:block;overflow:hidden}.edit-link a,.edit-link:last-child a{background-color:var(--wp--preset--color--white);border:2px dashed var(--color-link-edit-border);clear:both;color:var(--color-link-edit-text);font-weight:var(--wp--custom--typography--weight-semibold);text-align:center;max-width:calc(100% - 2rem);margin:0 auto;padding:1rem;text-decoration:none;transition:all .15s;display:block}.edit-link a:hover,.edit-link:focus,.edit-link:last-child a:hover,.edit-link:last-child:focus{background-color:var(--color-link-edit-background-hover);border-color:var(--color-link-edit-border-hover);color:var(--color-link-edit-text-hover)}.post-inner{max-width:var(--wp--style--global--content-size);padding:var(--wp--preset--spacing--30) var(--wp--custom--spacing--container-padding-inline);margin-left:auto;margin-right:auto}@media print{.side-nav,.site-footer,.site-header{display:none}}.is-root-container,body{color:var(--wp--custom--color--paragraph);font-size:var(--wp--preset--font-size--18);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-weight:var(--wp--custom--typography--weight-paragraph);line-height:var(--wp--custom--typography--paragraph-line-height);text-rendering:geometricprecision}.is-root-container,body,h1,h2,h3,h4,h5,h6{font-family:var(--wp--preset--font-family--main)}h1,h2,h3,h4,h5,h6{color:var(--wp--custom--color--heading);font-weight:var(--wp--custom--typography--weight-heading);margin-bottom:var(--wp--custom--spacing--paragraphs-margin-block);margin-top:var(--wp--custom--spacing--paragraphs-margin-block)}h2,h3,h4,h5,h6{line-height:var(--wp--custom--typography--heading-line-height)}h1{font-size:var(--wp--preset--font-size--h-1)}h2{font-size:var(--wp--preset--font-size--h-2)}h3{font-size:var(--wp--preset--font-size--h-3)}h4{font-size:var(--wp--preset--font-size--h-4)}h5{font-size:var(--wp--preset--font-size--h-5)}h6{font-size:var(--wp--preset--font-size--h-6)}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0}b,strong{font-weight:var(--wp--custom--typography--weight-bold)}em,i{font-style:italic}p{margin-top:2rem;margin-bottom:2rem}p:last-child{margin-bottom:0}.wysiwyg li{margin-top:.6rem;margin-bottom:.6rem}.wysiwyg li:first-child{margin-top:0}.wysiwyg li:last-child{margin-bottom:0}blockquote.wysiwyg{border-left:2px solid var(--wp--custom--color--main);margin:2.9rem 1rem;padding:.5rem 0 .5rem 1.5rem}blockquote.wysiwyg>:first-child{margin-top:0}blockquote.wysiwyg>:last-child{margin-bottom:0}.site-header{background-color:var(--wp--preset--color--white)}@media screen and (width<=1030px){.site-header{background-color:var(--color-background-nav-mobile-header)}}.js-nav-active .site-header{background-color:var(--color-background-nav-mobile-header-active)}.site-header-inner{align-items:flex-start;column-gap:var(--wp--custom--spacing--grid-gap);max-width:var(--wp--custom--grid-base);padding-bottom:0;padding-left:var(--wp--custom--spacing--container-padding-inline);padding-right:var(--wp--custom--spacing--container-padding-inline);z-index:15;justify-content:space-between;margin-left:auto;margin-right:auto;padding-top:2.5rem;display:flex;position:relative}@media screen and (width<=1030px){.site-header-inner{padding-top:1.25rem;padding-bottom:0}}.site-title{margin:0;line-height:0}.site-title a{color:var(--wp--preset--color--black);align-items:center;display:flex}.site-footer{background-color:var(--wp--preset--color--white);color:var(--wp--custom--color--paragraph);border-top:1px solid #e3e3f0;padding:3.75rem 1.25rem;overflow:hidden}.site-footer .container{padding-top:2.5rem;padding-bottom:2.5rem}.site-footer a,.site-footer p{color:var(--wp--preset--color--black)}.site-footer .site-info{justify-content:start;gap:1rem;display:grid}.site-footer .theme-info{font-size:var(--wp--preset--font-size--16)}.site-footer .theme-info a{display:block}.site-footer .powered-by-wordpress,.site-footer .theme-info{gap:1rem;display:flex}.site-footer .powered-by-wordpress{font-weight:var(--wp--custom--typography--weight-semibold)}.site-footer .powered-by-wordpress svg{width:1.75rem;height:1.75rem}:root{--color-border-sticky:#d7e4f2;--color-bypostauthor:#2a2d3e80}.sticky .post-inner{border:2px dashed var(--color-border-sticky);margin-bottom:var(--wp--custom--spacing--container-padding-inline);padding:var(--wp--custom--spacing--container-padding-inline)}.bypostauthor,.comment-list li.bypostauthor{border:1px dashed var(--color-bypostauthor);padding:var(--wp--custom--spacing--container-padding-inline)}.blog article:first-of-type{margin-top:var(--wp--preset--spacing--30)}.wp-caption{max-width:100%}.wp-caption img[class*=wp-image-]{margin:0 auto;display:block}.wp-caption .wp-caption-text{text-align:left;margin-bottom:1.25rem;padding:.625rem 0;font-style:italic}.top{--color-background-top:var(--wp--preset--color--black);--color-background-top-hover:var(--wp--preset--color--white);background-color:var(--color-background-top);border:1px solid var(--wp--preset--color--black);bottom:var(--wp--custom--spacing--container-padding-inline);color:var(--wp--preset--color--white);cursor:pointer;font-size:var(--wp--preset--font-size--16);opacity:0;height:1.875rem;right:var(--wp--custom--spacing--container-padding-inline);text-align:center;visibility:hidden;z-index:1;border-radius:0;width:1.875rem;line-height:1.875rem;text-decoration:none;transition:opacity .5s;position:fixed}.top:hover{background-color:var(--color-background-top-hover)}.top:focus{background-color:var(--color-background-top)}.top.is-visible{opacity:1;visibility:visible}.gallery{grid-gap:1.5em;margin-bottom:1.5em;display:grid}.gallery-item{text-align:center;width:100%;display:inline-block}.gallery-columns-2{grid-template-columns:repeat(2,1fr)}.gallery-columns-3{grid-template-columns:repeat(3,1fr)}.gallery-columns-4{grid-template-columns:repeat(4,1fr)}.gallery-columns-5{grid-template-columns:repeat(5,1fr)}.gallery-columns-6{grid-template-columns:repeat(6,1fr)}.gallery-columns-7{grid-template-columns:repeat(7,1fr)}.gallery-columns-8{grid-template-columns:repeat(8,1fr)}.gallery-columns-9{grid-template-columns:repeat(9,1fr)}.gallery-caption{display:block}.navigation:not(.post-navigation) .nav-links{font-family:var(--wp--preset--font-family--main);text-align:left;justify-content:flex-start;align-items:flex-start;width:100%;margin-top:2.5rem;font-size:.875rem;display:flex;overflow:hidden}.navigation:not(.post-navigation) .nav-links a{text-decoration:none}.page-numbers{--color-pagination-border:#ece6f2;--color-pagination-text:#2a2d3e;--color-pagination-background-hover:#2a2d3e;--color-pagination-border-hover:#2a2d3e;--color-pagination-text-hover:#2a2d3e;--color-pagination-background-current:#2a2d3e;--color-pagination-border-current:#2a2d3e;--color-pagination-text-current:var(--wp--preset--color--white);background-color:var(--wp--preset--color--white);border-bottom:2px solid var(--color-pagination-border);border-left:1px solid var(--color-pagination-border);border-right:1px solid var(--color-pagination-border);border-top:2px solid var(--color-pagination-border);color:var(--color-pagination-text);font-weight:var(--wp--custom--typography--weight-medium);justify-content:center;align-items:center;width:2.1875rem;height:2.1875rem;margin-left:0;margin-right:0;transition:all .15s;display:flex}.page-numbers:last-child{border-radius:0 4px 4px 0}.page-numbers:first-child{border-radius:4px 0 0 4px}@media (width<=600px){.page-numbers{width:1.625rem;height:1.625rem}}a.page-numbers:focus,a.page-numbers:hover{background-color:var(--color-pagination-background-hover);border-color:var(--color-pagination-border-hover);color:var(--color-pagination-text-hover)}.page-numbers.current{background-color:var(--color-pagination-background-current);border-color:var(--color-pagination-border-current);color:var(--color-pagination-text-current)}.page-numbers.next,.page-numbers.prev{width:auto;padding-left:1.25rem;padding-right:1.25rem}@media (width<=600px){.page-numbers.next,.page-numbers.prev{padding-left:.625rem;padding-right:.625rem}}.block-search,.block-search-results{background-color:var(--wp--preset--color--white)}.block-search form{grid-gap:.625rem;grid-template-columns:9fr 1fr;display:grid}.block-search form input,.block-search form label{width:100%}.block-search-results>.container{padding-top:0}@media (width>=1024px){.block-search-results>.container{display:grid}}.block-search-results .row-result{border-top:2px solid var(--wp--preset--color--black);padding:1.25rem 0}.block-search-results .row-result:last-of-type{border-bottom:2px solid var(--wp--preset--color--black)}.block-search-results h3{font-size:var(--wp--preset--font-size--h-4);margin-bottom:.625rem}.block-search-results p{margin-top:.625rem}@media (width>=600px){.block-error-404 .container{padding-top:10%;padding-bottom:10%}}.block-error-404 .content{text-align:center}.block-error-404 h1{font-size:clamp(60px,24px + 6vw,120px);line-height:var(--wp--custom--typography--heading-core-line-height);margin-bottom:1.25rem}.categories,.entry-content .categories,.entry-content .tags,.tags{flex-wrap:wrap;padding-inline-start:0;list-style:none;display:flex}.categories,.entry-content .categories{gap:.75rem}.categories a{font-size:var(--wp--preset--font-size--14);border-radius:0;margin:0;padding:.3125rem .9375rem;transition:all .15s;display:inline-block}.categories a,.categories a:focus,.categories a:hover{background-color:var(--wp--preset--color--black);color:var(--wp--preset--color--white)}.entry-content .tags,.tags{margin-bottom:var(--wp--custom--spacing--text-margin-block);flex-wrap:wrap;gap:.3125rem;margin-top:0;display:flex}.entry-content .tags a,.tags a{border:1px solid var(--wp--preset--color--black);box-shadow:none;color:var(--wp--custom--color--paragraph);font-size:var(--wp--preset--font-size--12);white-space:nowrap;background-color:#0000;border-radius:0;margin-right:4px;padding:.0625rem .5rem;transition:all .15s;display:inline-block}.entry-content .tags a:focus,.entry-content .tags a:hover,.tags a:focus,.tags a:hover{background-color:var(--wp--preset--color--black);border-color:var(--wp--preset--color--black);color:var(--wp--preset--color--white)}.post-navigation .nav-links{flex-wrap:wrap;justify-content:space-between;display:flex}.comments-area{--color-comment-text:var(--wp--custom--color--paragraph);--color-comment-author-text:var(--wp--custom--color--paragraph);--color-link-comment:var(--wp--custom--color--accent);--color-link-comment-time-anchor:var(--wp--custom--color--paragraph);margin-top:3.125rem;margin-bottom:0;overflow:visible}.comment-list{margin:0;padding:0}.comment-list,.comment-list .children{list-style:none}.comment-list li{margin-top:0;margin-bottom:4.375rem;padding:0}.comment-list li,.comment-list p{font-size:var(--wp--preset--font-size--14)}.comment-list p{color:var(--color-comment-text)}.comment-list .avatar{float:right;border-radius:50%}.comment-list .comment-author{color:var(--color-comment-author-text);font-size:var(--wp--preset--font-size--h-4);margin-top:0;margin-bottom:.625rem;padding:0}.comment-list .comments-link a,.comment-list a{box-shadow:none;color:var(--color-link-comment)}.comment-list .comment-author a{color:var(--wp--custom--color--paragraph)}.comment-list .comment-time{font-size:var(--wp--preset--font-size--14);margin:0;padding:0}.comment-list .comment-time a{color:var(--color-link-comment-time-anchor)}.comment-list .comment-time:focus,.comment-list .comment-time:hover{opacity:1}.comment-list .comment-time svg{fill:var(--color-link-comment-time-anchor);margin-right:.3125rem;position:relative;top:2px}.comments-link{font-size:var(--wp--preset--font-size--14);text-align:right;align-items:center;display:inline-flex}.comments-link a{color:var(--color-link-comment)}.comments-link a:focus,.comments-link a:hover,.comments-link:focus,.comments-link:hover{color:var(--wp--preset--color--black)}.comments-link svg{margin-right:.4375rem;position:relative;top:-1px}@media (width>=600px){.comment-form{grid-gap:1em;grid-template-columns:1fr 1fr;justify-content:center;display:grid}.comment-form .comment-form-comment,.comment-form .comment-notes,.comment-form .form-submit{grid-column:1/span 2}}.comment-respond{margin-bottom:0;overflow:visible}@media (width<=600px){.comment-respond input{width:100%}}.comment-respond .comment-form-author{margin-top:0;margin-bottom:1.25rem}.comment-respond .comment-form-author input{border-width:1px;width:100%;padding:1.5rem}.comment-respond .comment-form-email{clear:right;margin-top:0;margin-bottom:1.25rem;margin-right:0}.comment-respond .comment-form-email input{border-width:1px;width:100%;padding:.9375rem}.comment-respond .comment-form-url{margin-top:0;margin-bottom:1.875rem;position:relative}.comment-respond .comment-form-url input{border-width:1px;width:100%;padding:.9375rem}.comment-respond .form-submit{clear:both;margin-top:0;margin-bottom:0;display:block}.comment-respond .comment-form-comment{margin-bottom:1.25rem}.comment-respond textarea{width:100%}.wp-block-media-text{gap:var(--wp--custom--spacing--grid-gap);padding-inline:var(--wp--custom--spacing--container-padding-inline)}.wp-block-media-text.has-background{background-color:#0000;position:relative}.wp-block-media-text.has-background:before{background-color:var(--wp--preset--color--light);content:"";z-index:0;width:100vw;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.wp-block-media-text.has-background>*{z-index:1;position:relative}.wp-block-media-text .wp-block-heading{margin:0}.wp-block-media-text .wp-block-media-text__media{aspect-ratio:4/3;background-color:var(--color-placeholder,#f0f0f0)}.wp-block-media-text .wp-block-media-text__media img{object-fit:cover;width:100%;height:100%}.wp-block-media-text .wp-block-media-text__media:has(img),.wp-block-media-text .wp-block-media-text__media:has(video){background-color:#0000}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media{height:auto;min-height:0}.wp-block-media-text .editor-media-container__resizer{aspect-ratio:4/3}.wp-block-media-text .editor-media-container__resizer img{object-fit:cover;width:100%;height:100%}.wp-block-media-text .wp-block-media-text__content{padding:2rem}.wp-block-media-text .wp-block-media-text__content>:first-child{margin-top:0}.wp-block-media-text .wp-block-media-text__content>:last-child{margin-bottom:0}.editor-styles-wrapper .wp-block-media-text .wp-block-media-text__media:empty,.editor-styles-wrapper .wp-block-media-text .wp-block-media-text__media:has(.block-editor-media-placeholder){background-color:var(--color-placeholder,#f0f0f0);min-height:18.75rem}[class*=wp-block].is-style-has-m-padding{padding-bottom:var(--wp--preset--spacing--30);padding-top:var(--wp--preset--spacing--30)}[class*=wp-block].is-style-has-l-padding{padding-bottom:var(--wp--preset--spacing--40);padding-top:var(--wp--preset--spacing--40)}[class*=wp-block].is-style-no-padding{padding-top:0;padding-bottom:0}.wp-block-buttons{justify-content:flex-start}.wp-block-button{text-align:left}.wp-block-button__link{appearance:none;background-color:var(--wp--preset--color--black);border:1px solid var(--wp--preset--color--black);color:var(--wp--preset--color--white);cursor:pointer;font-family:var(--wp--preset--font-family--main);font-size:var(--wp--preset--font-size--16);font-weight:var(--wp--custom--typography--weight-semibold);text-overflow:ellipsis;border-radius:0;width:auto;max-width:230px;margin-bottom:0;padding:14px 21px;line-height:1.39;text-decoration:none;transition:all .15s cubic-bezier(.25,.46,.45,.94);position:relative;overflow:hidden;white-space:nowrap!important}.wp-block-button__link.focus,.wp-block-button__link:focus,.wp-block-button__link:hover{background-color:var(--wp--preset--color--white);border-color:var(--wp--preset--color--black);color:var(--wp--preset--color--black)}.wp-block-button__link{text-align:center;display:inline-block}.button{appearance:none;background-color:var(--wp--preset--color--black);border:1px solid var(--wp--preset--color--black);color:var(--wp--preset--color--white);cursor:pointer;font-family:var(--wp--preset--font-family--main);font-size:var(--wp--preset--font-size--16);font-weight:var(--wp--custom--typography--weight-semibold);text-overflow:ellipsis;border-radius:0;width:auto;max-width:230px;margin-bottom:0;padding:14px 21px;line-height:1.39;text-decoration:none;transition:all .15s cubic-bezier(.25,.46,.45,.94);display:inline-block;position:relative;overflow:hidden;white-space:nowrap!important}.button.focus,.button:focus,.button:hover{background-color:var(--wp--preset--color--white);border-color:var(--wp--preset--color--black);color:var(--wp--preset--color--black)}.button-small{appearance:none;background-color:var(--wp--preset--color--black);border:1px solid var(--wp--preset--color--black);color:var(--wp--preset--color--white);cursor:pointer;font-family:var(--wp--preset--font-family--main);font-weight:var(--wp--custom--typography--weight-semibold);text-overflow:ellipsis;border-radius:0;width:auto;max-width:230px;margin-bottom:0;padding:14px 21px;line-height:1.39;text-decoration:none;transition:all .15s cubic-bezier(.25,.46,.45,.94);display:inline-block;position:relative;overflow:hidden;white-space:nowrap!important}.button-small.focus,.button-small:focus,.button-small:hover{background-color:var(--wp--preset--color--white);border-color:var(--wp--preset--color--black);color:var(--wp--preset--color--black)}.button-small{padding:8px 19px;line-height:20.9091px}.button-large,.button-small{font-size:var(--wp--preset--font-size--16)}.button-large{appearance:none;background-color:var(--wp--preset--color--black);border:1px solid var(--wp--preset--color--black);color:var(--wp--preset--color--white);cursor:pointer;font-family:var(--wp--preset--font-family--main);font-weight:var(--wp--custom--typography--weight-semibold);text-overflow:ellipsis;border-radius:0;width:auto;max-width:230px;margin-bottom:0;padding:14px 21px;line-height:1.39;text-decoration:none;transition:all .15s cubic-bezier(.25,.46,.45,.94);display:inline-block;position:relative;overflow:hidden;white-space:nowrap!important}.button-large.focus,.button-large:focus,.button-large:hover{background-color:var(--wp--preset--color--white);border-color:var(--wp--preset--color--black);color:var(--wp--preset--color--black)}.button-large{font-size:var(--wp--preset--font-size--18);padding:15px 19px;line-height:1.66}.alignwide{max-width:var(--wp--style--global--wide-size);width:100%;margin-left:auto;margin-right:auto}.alignfull{width:100vw;max-width:none}img{max-width:100%}img[width][height]{height:auto}a{color:var(--wp--custom--color--link-text);text-decoration:underline;-webkit-text-decoration-color:var(--wp--custom--color--link-text);-webkit-text-decoration-color:var(--wp--custom--color--link-text);text-decoration-color:var(--wp--custom--color--link-text);text-underline-offset:.375rem;transition:all .15s}a:focus,a:hover{color:var(--wp--custom--color--link-text-hover);-webkit-text-decoration-color:var(--wp--custom--color--link-text-hover);-webkit-text-decoration-color:var(--wp--custom--color--link-text-hover);text-decoration-color:var(--wp--custom--color--link-text-hover)}.entry-footer a,.site-footer a,.site-header a{text-decoration:none}p{color:var(--wp--custom--color--paragraph);line-height:var(--wp--custom--typography--paragraph-line-height)}
/* ==== source: assets/css/gbc-tokens.css ==== */
/* ============================================================================
   GRACE BAPTIST CHURCH — DESIGN TOKENS · "GRACE FOR GRACE" (Concept D port)
   ----------------------------------------------------------------------------
   Single source of truth for every visual value. RAW color / shadow / easing
   values live ONLY in this file — every component rule in gbc-theme.css and
   gbc-home.css references var(--gbc-*). Lifted verbatim from the approved
   concept-d/styles.css :root block (clients/gbc/design/concepts/concept-d).
   TYPE SCALE (stated): 11.5 / 12.5 / 14 / 15.2 / 17 / lede 17–19 / h3 24–31 /
   time 30–40 / verse 26–37 / h2 35–56 / h1 50–94. Cormorant Garamond display
   + Instrument Sans text. 8px spacing grid, 4px half-step.
   ============================================================================ */

:root {
  /* Approved September 2 background-photo hero tint, scoped via its stylesheet. */
  --gbc-photo-paper-92: rgba(244,239,230,.92);
  --gbc-photo-paper-88: rgba(244,239,230,.88);
  --gbc-photo-paper-86: rgba(244,239,230,.86);
  --gbc-photo-paper-80: rgba(244,239,230,.80);
  --gbc-photo-paper-60: rgba(244,239,230,.60);
  --gbc-photo-paper-24: rgba(244,239,230,.24);
  --gbc-photo-paper-05: rgba(244,239,230,.05);
  /* ==========================================================================
     PALETTE — sampled from Grace Baptist's own building (2026-07-29 photo set).
     Carpet / front doors / gable cross oxblood, plaster walls, honey oak pews,
     brass hardware. Raw color values appear in THIS BLOCK ONLY.
     Contrast verified 2026-07-30 — see the spec's measurement table.
     ====================================================================== */
  --gbc-oxblood:      #5E2028;  /* bands, hero scrim, headings — 10.70:1 on plaster */
  --gbc-oxblood-deep: #3F151B;  /* Order-of-Services panel, footer — 13.74:1 */
  --gbc-oxblood-2:    #7A2C33;  /* hover / accent lift */
  --gbc-plaster:      #F4EFE6;  /* page ground */
  --gbc-plaster-2:    #EAE2D4;  /* alternating band */
  --gbc-cream:        #FBF7F0;  /* text on dark — 11.48:1 on oxblood */
  --gbc-oak:          #A8763F;  /* DECORATIVE / >=24px ONLY — 3.44:1, fails small text */
  --gbc-oak-deep:     #6F4A22;  /* small text safe on plaster — 6.85:1 */
  --gbc-brass:        #B8913F;  /* rules + ornament; on oxblood = AA-large ONLY (4.18:1) */
  --gbc-brass-soft:   #E3C88A;  /* small caps labels on oxblood — 7.53:1 */
  --gbc-ink:          #241A1A;  /* body copy — 14.81:1 on plaster */
  /* Brick — the script red from the church's own postcard. Warmer and lighter
     than oxblood, which is the point: it lifts the brand mark off the
     structural colour. 5.41:1 on plaster. */
  --gbc-brick:        #9E4638;
  --gbc-brick-deep:   #7E3529;
  --gbc-muted:        #6B5B52;  /* secondary copy — 5.65:1 on plaster */

  /* Approved 2026 River Road homepage palette. Kept as explicit tokens so
     the homepage can use the locked mockup values without silently changing
     the already-built inner pages. */
  --gbc-home-oxblood: #5E2028;
  --gbc-home-deep:    #2E0D13;
  --gbc-home-cream:   #FFF9EE;
  --gbc-home-paper:   #F4ECDF;
  --gbc-home-gold:    #CDA85D;
  --gbc-home-gold-bright: #F0CF81;

  /* Contact page parity tokens — approved correspondence mock. */
  --gbc-contact-ink: #2C1718;
  --gbc-contact-muted: #725B56;
  --gbc-contact-white: #FFFFFF;

  /* alpha derivatives */
  --gbc-line:         rgba(36, 26, 26, .14);
  --gbc-line-soft:    rgba(36, 26, 26, .08);
  --gbc-ink-05:       rgba(36, 26, 26, .05);
  --gbc-ink-10:       rgba(36, 26, 26, .10);
  --gbc-brass-0:      rgba(184, 145, 63, 0);
  --gbc-brass-12:     rgba(184, 145, 63, .12);
  --gbc-brass-25:     rgba(184, 145, 63, .25);
  --gbc-brass-45:     rgba(184, 145, 63, .45);
  --gbc-oxblood-a55:  rgba(94, 32, 40, .55);
  --gbc-oxblood-a80:  rgba(94, 32, 40, .80);
  --gbc-oxblood-a92:  rgba(94, 32, 40, .92);
  --gbc-oxblood-a0:   rgba(94, 32, 40, 0);

  /* Deep-oxblood alphas for photo scrims. #5E2028 at high alpha over a BRIGHT
     photograph (the sanctuary's white ceiling and walls) reads dusty pink, not
     shadow — the deeper #3F151B holds its weight over light subjects. */
  --gbc-oxblood-deep-a95: rgba(63, 21, 27, .95);
  --gbc-oxblood-deep-a88: rgba(63, 21, 27, .88);
  --gbc-oxblood-deep-a70: rgba(63, 21, 27, .70);
  --gbc-oxblood-deep-a45: rgba(63, 21, 27, .45);
  --gbc-oxblood-deep-a32: rgba(63, 21, 27, .32);
  --gbc-oxblood-deep-a18: rgba(63, 21, 27, .18);
  --gbc-oxblood-deep-a0:  rgba(63, 21, 27, 0);
  --gbc-cream-94:     rgba(251, 247, 240, .94);
  --gbc-cream-78:     rgba(251, 247, 240, .78);
  --gbc-cream-62:     rgba(251, 247, 240, .62);
  --gbc-cream-28:     rgba(251, 247, 240, .28);
  --gbc-cream-14:     rgba(251, 247, 240, .14);
  --gbc-cream-08:     rgba(251, 247, 240, .08);
  --gbc-cream-line:   rgba(251, 247, 240, .18);
  --gbc-plaster-a76:  rgba(244, 239, 230, .76);
  --gbc-plaster-a0:   rgba(244, 239, 230, 0);
  --gbc-home-deep-a96: rgba(46, 13, 19, .96);
  --gbc-home-deep-a88: rgba(46, 13, 19, .88);
  --gbc-home-deep-a76: rgba(46, 13, 19, .76);
  --gbc-home-deep-a66: rgba(46, 13, 19, .66);  /* desktop hero mid-band: lifts the lede and italic line clear of AA */
  --gbc-home-deep-a58: rgba(46, 13, 19, .58);
  --gbc-home-deep-a22: rgba(46, 13, 19, .22);
  --gbc-home-deep-a08: rgba(46, 13, 19, .08);
  --gbc-home-deep-a0: rgba(46, 13, 19, 0);
  --gbc-home-cream-a86: rgba(255, 249, 238, .86);
  --gbc-home-cream-a68: rgba(255, 249, 238, .68);
  --gbc-home-cream-a36: rgba(255, 249, 238, .36);
  --gbc-home-cream-a18: rgba(255, 249, 238, .18);
  --gbc-home-cream-a10: rgba(255, 249, 238, .10);
  --gbc-home-gold-a55: rgba(205, 168, 93, .55);
  --gbc-home-gold-a18: rgba(205, 168, 93, .18);
  --gbc-contact-line: rgba(94, 32, 40, .18);
  --gbc-contact-line-strong: rgba(94, 32, 40, .32);
  --gbc-contact-oxblood-a08: rgba(94, 32, 40, .08);
  --gbc-contact-cream-a72: rgba(255, 249, 238, .72);
  --gbc-contact-focus-shadow: 0 0 0 3px rgba(94, 32, 40, .14);
  --gbc-contact-shadow-sm: 0 10px 24px rgba(46, 13, 19, .12);
  --gbc-contact-shadow-lg: 0 28px 64px rgba(46, 13, 19, .16);
  --gbc-home-shadow-sm: 0 10px 24px rgba(46, 13, 19, .18);
  --gbc-home-shadow-lg: 14px 18px 24px rgba(46, 13, 19, .18);

  /* ------------------------------------------------------------------------
     CONCEPT-D ALIASES — the ported component CSS (1,371 lines across
     gbc-home.css + gbc-theme.css) still references these names. They now
     resolve to the oxblood palette, so the pivot propagates without touching
     a single component rule. Do NOT add new usages of these.
     --------------------------------------------------------------------- */
  --gbc-pine:         var(--gbc-oxblood);
  --gbc-pine-deep:    var(--gbc-oxblood-deep);
  --gbc-pine-08:      rgba(94, 32, 40, .08);
  --gbc-pine-12:      rgba(94, 32, 40, .12);
  --gbc-gold:         var(--gbc-brass);
  --gbc-gold-soft:    var(--gbc-brass-soft);
  --gbc-gold-0:       var(--gbc-brass-0);
  --gbc-gold-12:      var(--gbc-brass-12);
  --gbc-gold-25:      var(--gbc-brass-25);
  --gbc-gold-45:      var(--gbc-brass-45);
  --gbc-clay:         var(--gbc-oak);
  --gbc-clay-deep:    var(--gbc-oak-deep);
  --gbc-clay-45:      rgba(94, 32, 40, .45);
  --gbc-paper:        var(--gbc-plaster);
  --gbc-paper-2:      var(--gbc-plaster-2);
  --gbc-paper-a76:    var(--gbc-plaster-a76);
  --gbc-paper-a0:     var(--gbc-plaster-a0);
  --gbc-white:        var(--gbc-cream);
  --gbc-white-a45:    rgba(251, 247, 240, .45);
  --gbc-candle:       var(--gbc-brass);
  --gbc-candle-soft:  var(--gbc-brass-soft);
  --gbc-candle-a0:    var(--gbc-brass-0);
  --gbc-candle-a06:   rgba(184, 145, 63, .06);
  --gbc-candle-a10:   rgba(184, 145, 63, .10);
  --gbc-candle-a16:   rgba(184, 145, 63, .16);
  --gbc-candle-a28:   rgba(184, 145, 63, .28);
  --gbc-candle-a45:   var(--gbc-brass-45);

  /* -- header translucency (not in brief's alias list; still referenced by
     gbc-theme.css .site-header) — rebuilt from --gbc-plaster at the SAME
     alpha as the pre-pivot value (.88) --------------------------------- */
  --gbc-header-bg:    rgba(244, 239, 230, .88);

  /* -- no-JS hero fallback: three quiet current lines on the paper ---------- */
  --gbc-hero-fallback: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 800' preserveAspectRatio='xMidYMid slice'%3E%3Cpath d='M-20 470 C 240 420, 420 545, 720 502 S 1180 420, 1460 478' fill='none' stroke='%23c1903d' stroke-width='2' opacity='.22'/%3E%3Cpath d='M-20 548 C 260 505, 460 615, 760 568 S 1220 485, 1460 548' fill='none' stroke='%230f2a20' stroke-width='1.6' opacity='.14'/%3E%3Cpath d='M-20 620 C 240 588, 500 686, 800 634 S 1240 565, 1460 618' fill='none' stroke='%23d9a648' stroke-width='2' opacity='.18'/%3E%3C/svg%3E");

  /* -- paper grain (seeded fractal tooth, referenced by body::after) -------- */
  --gbc-grain-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='2' seed='1957' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");

  /* -- fonts ------------------------------------------------------------------ */
  --gbc-font-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --gbc-font-body:    "Lora", Georgia, serif;
  --gbc-font-ui:      "Montserrat", "Segoe UI", system-ui, sans-serif;

  /* -- type scale ------------------------------------------------------------- */
  --gbc-text-2xs: .72rem;
  --gbc-text-xs: .78rem;
  --gbc-text-sm: .875rem;
  --gbc-text-md: .95rem;
  --gbc-text-readable: 1rem;
  --gbc-text-base: 1.0625rem;
  --gbc-text-lede: clamp(1.05rem, 1rem + .32vw, 1.2rem);
  --gbc-text-h4: 1.35rem;
  --gbc-text-h3: clamp(1.5rem, 1.36rem + .7vw, 1.95rem);
  --gbc-text-h2: clamp(2.2rem, 1.7rem + 2.5vw, 3.5rem);
  --gbc-text-h1: clamp(3.1rem, 2rem + 5.6vw, 5.9rem);
  --gbc-text-time: clamp(1.9rem, 1.7rem + 1vw, 2.5rem);
  --gbc-text-verse: clamp(1.62rem, 1.4rem + 1.2vw, 2.3rem);
  --gbc-lh-display: 1.04;

  /* -- spacing (8px grid, 4px half-step) --------------------------------------- */
  --gbc-s-05: 4px;
  --gbc-s-1: 8px;
  --gbc-s-2: 16px;
  --gbc-s-3: 24px;
  --gbc-s-4: 32px;
  --gbc-s-5: 40px;
  --gbc-s-6: 48px;
  --gbc-s-8: 64px;
  --gbc-s-10: 80px;
  --gbc-s-12: 96px;
  --gbc-sec-pad: clamp(64px, 40px + 5vw, 112px);
  --gbc-container: min(1240px, 100% - 48px);
  --gbc-anchor-offset: 104px;
  --gbc-chrome-h: 76px;                /* header only, for hero sizing */
  --gbc-gutter: clamp(24px, 4vw, 48px); /* fluid page gutter, mobile → desktop */

  /* -- shared inner-page hero contract ----------------------------------------- */
  --gbc-page-hero-min-h: calc(100svh - var(--gbc-chrome-h));
  --gbc-page-hero-desktop-min-h: min(760px, calc(100svh - var(--gbc-chrome-h)));
  --gbc-page-hero-columns: minmax(0, .92fr) minmax(520px, 1.08fr);
  --gbc-page-hero-copy-max: 690px;
  --gbc-page-hero-copy-pad: clamp(56px, 11vw, 112px);
  --gbc-page-hero-copy-pad-desktop: clamp(72px, 8vw, 128px);
  --gbc-page-hero-copy-gutter-desktop: clamp(48px, 6vw, 104px);
  --gbc-page-hero-title: clamp(3.2rem, 14.5vw, 5.9rem);

  /* -- radius -------------------------------------------------------------------- */
  --gbc-r-lg: 24px;
  --gbc-r: 16px;
  --gbc-r-sm: 10px;
  --gbc-r-xs: 6px;
  --gbc-r-2xs: 3px;
  --gbc-r-pill: 999px;

  /* -- shadows --------------------------------------------------------------------- */
  --gbc-shadow-sm: 0 8px 24px rgba(94, 32, 40, .08);
  --gbc-shadow: 0 24px 56px rgba(94, 32, 40, .14);
  --gbc-shadow-lift: 0 16px 32px rgba(94, 32, 40, .16);
  --gbc-shadow-btn: 0 12px 26px rgba(94, 32, 40, .28);
  --gbc-shadow-gold: 0 12px 30px rgba(184, 145, 63, .38);
  --gbc-shadow-register: .055em .055em 0 rgba(184, 145, 63, .45);

  /* -- motion ------------------------------------------------------------------------ */
  --gbc-ease-out: cubic-bezier(.22, .61, .21, 1);
  --gbc-ease-drift: cubic-bezier(.30, .09, .14, .99);
  --gbc-dur-fast: 180ms;
  --gbc-dur-mid: 260ms;
  --gbc-dur-reveal: 480ms;

  /* -- texture ------------------------------------------------------------------------- */
  --gbc-grain-a: .04;

  /* -- focus --------------------------------------------------------------------------- */
  --gbc-focus: var(--gbc-clay-deep);
  --gbc-focus-ring: 2px solid var(--gbc-brass-soft);
}
/* ==== source: assets/css/gbc-theme.css ==== */
/* ============================================================================
   GRACE BAPTIST CHURCH — SITEWIDE CHROME · "GRACE FOR GRACE" (Concept D port)
   ----------------------------------------------------------------------------
   Topline, plate header (starter nav machinery restyled to D), buttons, type
   scale, shared ornaments, sanctuary footer. Loads AFTER the starter's
   front-end.css and BEFORE gbc-home.css. Every value references a --gbc-*
   token from gbc-tokens.css — no raw colors in this file.
   Mobile-first; the only max-width blocks wrap overrides of the starter's own
   max-width nav machinery (its breakpoint is 1030px — adopted as-is).
   ============================================================================ */

/* ============================================================================
   BASE
   ============================================================================ */
html {
  /* no blanket smooth scroll: travel is granted per anchor CLICK by the
     starter's MoveTo module, never via CSS (it hijacks history scrolls). */
  scroll-behavior: auto;
  -webkit-text-size-adjust: 100%;
}

.is-root-container,
body:not(.wp-admin) {
  margin: 0;
  font-family: var(--gbc-font-body);
  font-size: var(--gbc-text-base);
  font-weight: 400;
  line-height: 1.65;
  color: var(--gbc-ink);
  background: var(--gbc-paper);
}

/* The starter's .site wrapper ships overflow: hidden. Keep a clipping guard
   for horizontal overflow, while the shared header is fixed to the viewport
   below so it cannot become trapped in a section scrollport. */
.site { overflow: clip; }

/* paper grain — seeded fractal tooth, fixed, non-interactive, ≤ .05 opacity */
body:not(.wp-admin)::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 80;
  pointer-events: none;
  opacity: var(--gbc-grain-a);
  background-image: var(--gbc-grain-img);
  background-repeat: repeat;
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
address { font-style: normal; }
blockquote, figure { margin: 0; }

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-family: var(--gbc-font-display);
  font-weight: 600;
  line-height: var(--gbc-lh-display);
  letter-spacing: .002em;
  color: var(--gbc-pine-deep);
  text-wrap: balance;
}
h1 em, h2 em {
  font-style: italic;
  font-weight: 500;
}

:focus-visible {
  outline: 3px solid var(--gbc-focus);
  outline-offset: 3px;
  border-radius: var(--gbc-r-xs);
}

.wrap { width: var(--gbc-container); margin-inline: auto; }

.visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* starter skip link, restyled to D */
.skip-link.screen-reader-text:focus {
  top: var(--gbc-s-1);
  left: var(--gbc-s-1);
  z-index: 200;
  width: auto; height: auto;
  clip: auto;
  clip-path: none;
  padding: var(--gbc-s-2) var(--gbc-s-3);
  background: var(--gbc-pine-deep);
  color: var(--gbc-white);
  font-weight: 600;
  font-size: var(--gbc-text-sm);
  border-radius: var(--gbc-r-sm);
  text-decoration: none;
}

svg.i {
  width: 15px; height: 15px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* small gold diamond — recurring letterpress ornament */
.dia {
  display: inline-block;
  width: 6px; height: 6px;
  background: var(--gbc-gold);
  transform: rotate(45deg);
  flex: 0 0 auto;
}
.dia--gold { background: var(--gbc-gold); }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-size: var(--gbc-text-2xs);
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: .24em;
  color: var(--gbc-clay-deep);
}
.eyebrow::before {
  content: "";
  width: 28px; height: 2px;
  background: var(--gbc-gold);
}
.eyebrow--dark { color: var(--gbc-gold-soft); }

.lede {
  margin: 0;
  font-size: var(--gbc-text-lede);
  line-height: 1.75;
  color: var(--gbc-ink);
  max-width: 58ch;
  text-wrap: pretty;
}

[id] { scroll-margin-top: var(--gbc-anchor-offset); }

.section-head { max-width: 720px; }
.section-head h2 { margin-top: var(--gbc-s-2); color: var(--gbc-pine-deep); font-size: var(--gbc-text-h2); }
.section-head__sub { margin: var(--gbc-s-2) 0 0; font-size: var(--gbc-text-lede); color: var(--gbc-muted); max-width: 52ch; text-wrap: pretty; }
.section-head--center { margin-inline: auto; text-align: center; }
.section-head--center .eyebrow { justify-content: center; }
.section-head--center .eyebrow::before { display: none; }

/* ============================================================================
   BUTTONS  (feedback ≤ 300ms; shade via opacity overlay — transform/opacity only)
   ============================================================================ */
.btn {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: var(--gbc-s-05) var(--gbc-s-3);
  border: 1px solid transparent;
  border-radius: var(--gbc-r-pill);
  font-family: var(--gbc-font-body);
  font-size: var(--gbc-text-md);
  font-weight: 620;
  line-height: 1.3;
  cursor: pointer;
  text-decoration: none;
  transition: transform var(--gbc-dur-mid) var(--gbc-ease-out), box-shadow var(--gbc-dur-mid) var(--gbc-ease-out);
}
.btn::before {                 /* hover shade layer — pure opacity */
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: var(--gbc-pine-deep);
  opacity: 0;
  transition: opacity var(--gbc-dur-fast) var(--gbc-ease-out);
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0) scale(.985); transition-duration: var(--gbc-dur-fast); }

.btn--primary { background: var(--gbc-pine); color: var(--gbc-white); box-shadow: var(--gbc-shadow-btn); padding-right: var(--gbc-s-1); }
.btn--primary:hover { color: var(--gbc-white); box-shadow: var(--gbc-shadow-lift); }
.btn--primary:hover::before { opacity: 1; }
.btn__ico {
  width: 36px; height: 36px;
  border-radius: var(--gbc-r-pill);
  display: grid;
  place-items: center;
  background: var(--gbc-cream-14);
  transition: transform var(--gbc-dur-mid) var(--gbc-ease-out);
}
.btn__ico svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.btn--primary:hover .btn__ico { transform: translate(2px, -2px); }

.btn--ghost {
  background: var(--gbc-white);
  color: var(--gbc-pine-deep);
  border-color: var(--gbc-line);
}
.btn--ghost::before { background: var(--gbc-pine-08); }
.btn--ghost:hover { color: var(--gbc-pine-deep); }
.btn--ghost:hover::before { opacity: 1; }

/* CTA contrast guardrail: no theme or page selector may rely on inherited hover text.
   Keep foregrounds explicit for every shared-button interaction state. */
.btn--primary:is(:hover, :focus-visible) { color: var(--gbc-white); }
.btn--ghost:is(:hover, :focus-visible) { color: var(--gbc-pine-deep); }

.btn--full { width: 100%; }

.error-recovery {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--gbc-s-2);
  margin-top: var(--gbc-s-3);
}

.error-recovery .btn {
  padding-inline: var(--gbc-s-3);
  font-size: var(--gbc-text-readable);
}
.btn__play { width: 18px; height: 18px; fill: currentColor; }

/* ============================================================================
   RESERVED ANNOUNCEMENT BAR
   ---------------------------------------------------------------------------
   No bar is rendered until Grace has approved real announcement content.
   These selectors remain as the governed visual treatment for that future
   component; contact details and service times belong in their real owners.
   ============================================================================ */
.topline {
  position: relative;
  z-index: 20;               /* stays above the mobile menu panel (z 5) */
  /* Was a solid oxblood-deep slab. Between this strip, the header and the hero
     scrim the page front-loaded three heavy oxblood blocks; this one steps back
     to plaster so the colour reads as an accent rather than the whole chrome. */
  background: var(--gbc-plaster-2);
  color: var(--gbc-ink);
  border-bottom: 1px solid var(--gbc-line-soft);
  font-size: var(--gbc-text-xs);
  font-weight: 500;
}
.topline__row {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gbc-s-2);
  padding-block: var(--gbc-s-05);
}
.topline__contact { margin: 0; display: flex; align-items: center; gap: var(--gbc-s-2); flex-wrap: wrap; }
/* The topline ground is plaster now, so its text moves off the cream tokens
   it used on the old oxblood slab — light-on-light was unreadable. */
.topline__item { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; white-space: nowrap; color: var(--gbc-muted); }
a.topline__item:hover { color: var(--gbc-brick); }
.topline__item--email, .topline__item--place { display: none; }
.topline__times { display: inline-flex; align-items: center; min-height: 36px; color: var(--gbc-brick); font-weight: 650; white-space: nowrap; }
.topline__times:hover { color: var(--gbc-brick-deep); }
.topline a { --gbc-focus: var(--gbc-brick); }

/* ============================================================================
   HEADER — frost lives on ::before: a backdrop-filter ON the sticky header
   would become the containing block for fixed descendants and cage them
   ============================================================================ */
.site-header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 100;
  background: transparent;
  border-bottom: 1px solid var(--gbc-line-soft);
  transition: border-color var(--gbc-dur-mid) var(--gbc-ease-out);
}

#page > .site-content {
  padding-top: var(--gbc-chrome-h);
}
.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--gbc-header-bg);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
.site-header.is-scrolled { border-bottom-color: var(--gbc-line-soft); box-shadow: var(--gbc-shadow-sm); }

/* Header ground stays the theme's own plaster (--gbc-header-bg on
   .site-header::before, defined above). The dark bar only ever existed to
   carry a white-ink raster logo; the lockup is live text now and recolours
   with the palette, so that constraint is gone — and the page sheds one of
   the three heavy oxblood blocks it was front-loading. */

/* The header sits ABOVE the hero in normal flow — it does not overlay the
   photograph. An earlier attempt made it transparent on the home page, which
   just exposed the cream page behind it and left the white logo invisible.
   Solid in every state is both correct and what the reference does. */

.site-header-inner {
  width: var(--gbc-container);
  max-width: none;
  margin-inline: auto;
  padding: 0;
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gbc-s-3);
}

/* --- Pastor-approved 2026 cursive Grace lockup --- */
.site-branding { display: flex; align-items: center; }
.brand {
  display: flex;
  align-items: center;
  min-height: 44px;
  text-decoration: none;
}
.brand img.brand__mark {
  display: block;
  width: auto;
  height: 58px;
  max-width: none;
}
.brand:focus-visible { outline: 3px solid var(--gbc-focus); outline-offset: 4px; }

@media (min-width: 48rem) {
  .brand img.brand__mark { height: 66px; }
}

/* --- nav zone: starter machinery, D skin --------------------------------- */
.nav-primary {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--gbc-s-2);
  padding: 0;
}
.nav-cta { display: none; order: 2; }
.nav-toggle { order: 3; }
.menu-items-wrapper { order: 1; }
.nav-parent-label { color: var(--gbc-ink); }
.nav-disclosure > .nav-parent-label { pointer-events: none; }
.dropdown-toggle__plus { position: relative; width: 16px; height: 16px; display: block; pointer-events: none; }
.dropdown-toggle__plus::before,
.dropdown-toggle__plus::after { content: ""; position: absolute; top: 50%; left: 50%; border-radius: var(--gbc-r-pill); background: currentColor; transform: translate(-50%, -50%); transition: transform var(--gbc-dur-fast) var(--gbc-ease-out); }
.dropdown-toggle__plus::before { width: 16px; height: 2px; }
.dropdown-toggle__plus::after { width: 2px; height: 16px; }
.dropdown-toggle[aria-expanded="true"] .dropdown-toggle__plus::after,
.hover-intent > .dropdown-toggle .dropdown-toggle__plus::after { transform: translate(-50%, -50%) scaleY(0); }
.dropdown-toggle:focus-visible { outline: 3px solid var(--gbc-focus); outline-offset: 2px; }

/* starter nav color/typography variables → D tokens (desktop level).
   --color-current stays ink: the certified design keeps every nav link the
   same weight of ink (aria-current still marks it for assistive tech). */
.site-header ul {
  --color-main-level: var(--gbc-ink);
  --color-hover-main-level: var(--gbc-brick);
  --color-current: var(--gbc-ink);
  --typography-size-main-level: var(--gbc-text-md);
  --typography-weight-main-level: 600;
  --gap-main-level-horizontal: var(--gbc-s-05);
  --color-sub-menu: var(--gbc-home-cream);
  --color-hover-sub-menu: var(--gbc-home-gold-bright);
  --color-background-sub-menu: var(--gbc-oxblood-deep);
  --width-sub-menu: 14rem;
}

/* starter mobile nav variables → D tokens */
:root {
  --color-background-nav-mobile-header: transparent;
  --color-background-nav-mobile-header-active: transparent;
  --color-background-menu-items: var(--gbc-paper);
  --color-background-menu-items-active: var(--gbc-paper);
  --color-separator-nav-mobile: var(--gbc-line-soft);
  --color-current-menu-item: var(--gbc-pine-deep);
  --color-main-level-menu-item-mobile: var(--gbc-pine-deep);
  --color-main-level-menu-item-hover-focus-mobile: var(--gbc-clay-deep);
  --typography-size-main-level-mobile: var(--gbc-text-h4);
  --typography-weight-main-level-mobile: 600;
  --padding-main-level-vertical-mobile: 12px;
  --width-navigation: 100vw;
}

/* Shared mobile-menu trigger: exact approved three-wave asset when closed. */
.nav-toggle {
  width: 48px;
  height: 48px;
  margin: 0;
  border: 1px solid var(--gbc-line);
  border-radius: var(--gbc-r-sm);
  background: var(--gbc-white);
}
.nav-toggle__waves { display: block; width: 44px; height: 44px; object-fit: contain; }
.js-nav-active .site-header { background: var(--gbc-paper); }

/* logged-in polish: sticky header clears the WP admin bar */
.admin-bar .site-header { top: 32px; }
.admin-bar #page > .site-content { padding-top: var(--gbc-chrome-h); }
@media screen and (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
}

/* Approved mobile navigation: a full editorial panel under the brand row.
   The WordPress starter supplies the accessible toggle, Escape handling, and
   focus trap; these rules replace only its generic slide-in presentation. */
@media screen and (max-width: 1029.98px) {
  .menu-items-wrapper {
    position: fixed;
    top: 76px !important;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100vw;
    height: auto !important;
    max-height: none;
    transform: translateY(-8px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    background: var(--gbc-paper);
    border-top: 1px solid var(--gbc-line);
    border-bottom: 0;
    box-shadow: none;
    padding: 21px 22px 17px;
    overflow: auto;
    transition:
      opacity var(--gbc-dur-mid) var(--gbc-ease-out),
      transform var(--gbc-dur-mid) var(--gbc-ease-out),
      visibility var(--gbc-dur-mid);
  }
  .js-nav-active .menu-items-wrapper {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .js-nav-active .nav-toggle__waves { display: none; }
  .js-nav-active .nav-toggle::before,
  .js-nav-active .nav-toggle::after {
    content: "";
    position: absolute;
    width: 2px;
    height: 23px;
    background: var(--gbc-pine);
  }
  .js-nav-active .nav-toggle::before { transform: rotate(45deg); }
  .js-nav-active .nav-toggle::after { transform: rotate(-45deg); }

  .mnav-kicker {
    margin: 0 0 10px;
    color: var(--gbc-clay-deep);
    font-family: var(--gbc-font-ui);
    font-size: var(--gbc-text-2xs);
    font-weight: 700;
    letter-spacing: .17em;
    text-transform: uppercase;
  }
  /* Sized like a button, not a banner: fits its label, 48px tall, readable text (2026-09-19 QA). */
  .mnav-visit {
    min-height: var(--gbc-s-6);
    display: inline-flex;
    align-items: center;
    gap: var(--gbc-s-2);
    padding: 0 var(--gbc-s-3);
    border-radius: var(--gbc-r-pill);
    background: var(--gbc-gold);
    color: var(--gbc-pine-deep);
    font-family: var(--gbc-font-ui);
    font-size: var(--gbc-text-sm);
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .mnav-visit > span:last-child { font-size: var(--gbc-text-readable); }
  .mnav-visit:is(:hover, :focus-visible) { color: var(--gbc-pine-deep); }

  .menu-items {
    width: 100%;
    margin: 18px 0 0;
    padding: 0;
    border-top: 1px solid var(--gbc-line);
  }
  .menu-item a,
  .menu-item > .nav-parent-label,
  .menu-item > .nav-disclosure .nav-parent-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 52px;
    padding: 0;
    border-top: 0;
    border-bottom: 1px solid var(--gbc-line);
    font-family: var(--gbc-font-display);
    font-size: var(--gbc-text-h4);
    font-weight: 600;
    color: var(--gbc-pine-deep);
  }
  .menu-item a::after {
    content: "\2192";
    color: var(--gbc-gold);
    font-family: var(--gbc-font-ui);
    font-size: var(--gbc-text-xs);
    font-weight: 600;
  }
  .menu-item a:hover,
  .menu-item a:focus { color: var(--gbc-clay-deep); }
  .menu-item-has-children > a,
  .menu-item-has-children > .nav-parent-label { padding-right: 56px; }
  .menu-item-has-children > .dropdown-toggle {
    width: 52px;
    min-width: 52px;
    min-height: 52px;
    justify-content: center;
    padding: 0;
    border-left: 1px solid var(--gbc-line);
    color: var(--gbc-clay-deep);
    top: 0;
  }
  .menu-item-has-children > .nav-disclosure {
    position: relative;
    top: auto;
    width: 100%;
    min-width: 0;
    min-height: 52px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0;
    border-left: 0;
    border-bottom: 1px solid var(--gbc-line);
    color: var(--gbc-pine-deep);
    background: transparent;
    text-align: left;
  }
  .menu-item-has-children > .nav-disclosure .nav-parent-label {
    flex: 1 1 auto;
    padding-right: 4px;
    border-bottom: 0;
    pointer-events: none;
  }
  .menu-item-has-children > .nav-disclosure .dropdown-toggle__plus {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    border-left: 1px solid var(--gbc-line);
  }
  .menu-item-has-children > .dropdown-toggle:is(:hover, :focus-visible),
  .menu-item-has-children > .dropdown-toggle[aria-expanded="true"] { background: var(--gbc-pine-08); color: var(--gbc-pine-deep); }
  .menu-item-has-children > .nav-disclosure:is(:hover, :focus-visible),
  .menu-item-has-children > .nav-disclosure[aria-expanded="true"] { background: transparent; }
  .menu-item-has-children > .nav-disclosure:is(:hover, :focus-visible) .dropdown-toggle__plus,
  .menu-item-has-children > .nav-disclosure[aria-expanded="true"] .dropdown-toggle__plus { background: var(--gbc-pine-08); }
  .menu-items .sub-menu {
    margin: 0;
    padding: 0 0 0 var(--gbc-s-2);
    border-bottom: 1px solid var(--gbc-line);
    background: var(--gbc-plaster-2);
  }
  .menu-items .sub-menu a {
    min-height: 48px;
    padding: 0 var(--gbc-s-2);
    border-bottom-color: var(--gbc-line-soft);
    color: var(--gbc-muted);
    font-family: var(--gbc-font-ui);
    font-size: var(--gbc-text-base);
    font-weight: 700;
  }
  .menu-items .sub-menu li:last-child > a { border-bottom: 0; }
  .menu-items .sub-menu a::after { font-size: var(--gbc-text-2xs); }

  /* Approved contact footer: utility is available without adding Home back. */
  .mnav-foot {
    width: 100%;
    margin-top: auto;
    padding-top: 14px;
    border-top: 2px solid var(--gbc-gold);
  }
  .mnav-foot__label {
    margin: 0 0 10px;
    color: var(--gbc-clay-deep);
    font-family: var(--gbc-font-ui);
    font-size: var(--gbc-text-2xs);
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
  }
  .mnav-foot__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 12px;
  }
  .mnav-foot__item {
    display: grid;
    grid-template-columns: 16px 1fr;
    gap: 7px;
    align-items: start;
    color: var(--gbc-muted);
    font-size: var(--gbc-text-2xs);
    line-height: 1.35;
  }
  a.mnav-foot__item {
    min-height: 44px;
    align-items: center;
  }
  .mnav-foot__item--wide { grid-column: 1 / -1; }
  .mnav-foot__item svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: var(--gbc-clay-deep);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
  }
  .mnav-social {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 11px;
    padding-top: 10px;
    border-top: 1px solid var(--gbc-line);
  }
  .mnav-social strong {
    color: var(--gbc-clay-deep);
    font-family: var(--gbc-font-ui);
    font-size: var(--gbc-text-2xs);
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
  }
  .mnav-social__links { display: flex; gap: 9px; }
  .mnav-social__link {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border: 1px solid var(--gbc-clay-45);
    border-radius: 50%;
    color: var(--gbc-clay-deep);
  }
  .mnav-social__link svg { width: 18px; height: 18px; fill: currentColor; }
  .mnav-social__link:is(:hover, :focus-visible) { color: var(--gbc-pine-deep); }
  .mnav-foot__tel { display: none; }

  /* no-JS floor: the starter's slide-in needs JS to open — without it, show
     the menu as a plain list under the brand row so every page stays
     reachable (the header row wraps instead of crushing the logo plate) */
  body.no-js .nav-toggle { display: none; }
  body.no-js .site-header-inner { flex-wrap: wrap; padding-block: var(--gbc-s-1); }
  body.no-js .nav-primary { flex-basis: 100%; }
  body.no-js .menu-items-wrapper {
    position: static;
    transform: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    width: 100%;
    max-height: none;
    box-shadow: none;
    border-bottom: 0;
  }
  body.no-js .menu-items .sub-menu { display: block; }
  body.no-js .menu-item-has-children > .dropdown-toggle:not(.nav-disclosure) { display: none; }
  body.no-js .menu-item-has-children > .nav-disclosure { pointer-events: none; }
  body.no-js .menu-item-has-children > .nav-disclosure .dropdown-toggle__plus { display: none; }
}

@media (min-width: 720px) {
  .nav-cta { display: inline-flex; }
  /* The header pill is visible from here up; one Plan Your Visit button is enough. */
  .mnav-kicker, .mnav-visit { display: none; }
}

@media (min-width: 1030px) {
  .mnav-kicker, .mnav-visit, .mnav-foot { display: none; }
  .menu-items-wrapper { margin-inline: auto; }        /* centers links between brand and CTA */
  .menu-items { flex-wrap: nowrap; }
  .menu-item-has-children > .dropdown-toggle {
    width: 44px;
    min-height: 44px;
    min-width: 44px;
    border: 1px solid var(--gbc-line);
    border-radius: var(--gbc-r-pill);
    color: var(--gbc-brick);
    cursor: pointer;
    pointer-events: auto;
  }
  .menu-item-has-children > .nav-disclosure {
    position: relative;
    top: auto;
    width: auto;
    min-width: 0;
    min-height: 44px;
    gap: 7px;
    padding: 0 14px;
    border: 0;
    border-radius: var(--gbc-r-sm);
    color: var(--gbc-ink);
    background: transparent;
  }
  .menu-item-has-children > .nav-disclosure .nav-parent-label {
    min-height: 0;
    padding: 0;
    border: 0;
    color: inherit;
    font-family: var(--gbc-font-body);
    font-size: var(--gbc-text-md);
    font-weight: 600;
    white-space: nowrap;
  }
  .menu-item-has-children > .nav-disclosure .dropdown-toggle__plus {
    width: 11px;
    height: 11px;
    flex: 0 0 11px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--gbc-brick);
  }
  .menu-item-has-children > .nav-disclosure .dropdown-toggle__plus::before {
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    border-radius: 0;
    background: transparent;
    transform: translate(-50%, -68%) rotate(45deg);
    transition: transform var(--gbc-dur-fast) var(--gbc-ease-out);
  }
  .menu-item-has-children > .nav-disclosure[aria-expanded="true"] .dropdown-toggle__plus::before {
    transform: translate(-50%, -32%) rotate(225deg);
  }
  .menu-item-has-children > .nav-disclosure .dropdown-toggle__plus::after { content: none; }
  .menu-item > a,
  .menu-item > .nav-parent-label {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding: 0 var(--gbc-s-2);
    border-radius: var(--gbc-r-sm);
    color: var(--color-main-level);
    font-size: var(--typography-size-main-level);
    font-weight: var(--typography-weight-main-level);
    white-space: nowrap;
    transition: none;
  }
  .menu-item > .nav-parent-label { padding-right: var(--gbc-s-1); }
  .menu-item > a:hover,
  .menu-item > a:focus { background: var(--gbc-pine-08); }
  .menu-item-has-children > .dropdown-toggle:is(:hover, :focus-visible),
  .menu-item-has-children > .dropdown-toggle[aria-expanded="true"] { border-color: var(--gbc-brass); background: var(--gbc-pine-08); color: var(--gbc-pine-deep); }
  .menu-item-has-children > .nav-disclosure:is(:hover, :focus-visible),
  .menu-item-has-children > .nav-disclosure[aria-expanded="true"] { border-color: transparent; color: var(--gbc-oxblood-deep); }
  .menu-item > .sub-menu {
    top: 100%;
    left: 0;
    width: 14rem;
    min-width: 14rem;
    margin: 0;
    padding: 6px 0;
    border: 1px solid var(--gbc-line);
    border-top: 3px solid var(--gbc-oxblood-deep);
    border-radius: 0 0 var(--gbc-r-sm) var(--gbc-r-sm);
    background: var(--gbc-home-cream);
    box-shadow: var(--gbc-shadow);
    transition: none;
  }
  .menu-item > .sub-menu li + li { border-top: 1px solid var(--gbc-line-soft); }
  .menu-item > .sub-menu a {
    min-height: 52px;
    padding: 0 18px;
    color: var(--gbc-ink);
    background: transparent;
    font-family: var(--gbc-font-body);
    font-size: var(--gbc-text-md);
    font-weight: 600;
    line-height: 1.5;
    transition: none;
  }
  .menu-item > .sub-menu a:is(:hover, :focus-visible) {
    color: var(--gbc-oxblood-deep);
    background: var(--gbc-home-gold-a18);
  }
}

/* ============================================================================
   FOOTER — sanctuary ground
   ============================================================================ */
.site-footer {
  background: var(--gbc-home-deep);
  color: var(--gbc-home-cream-a68);
  border-top: 0;
  overflow: visible;
  padding: var(--gbc-s-10) 0 var(--gbc-s-4);
  font-size: var(--gbc-text-base);
  --gbc-focus: var(--gbc-home-gold-bright);
}
.site-footer p, .site-footer a { color: inherit; }
.footer__grid { display: grid; grid-template-columns: 1fr; gap: var(--gbc-s-6); }
.footer__logo { width: 148px; height: auto; }
.footer__blurb { margin: var(--gbc-s-3) 0 0; max-width: 34ch; font-size: var(--gbc-text-md); line-height: 1.7; }
.footer__social { display: flex; flex-direction: row; gap: var(--gbc-s-2); margin-top: var(--gbc-s-3); }
.site-footer .footer__social-link { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--gbc-home-gold-a55); border-radius: var(--gbc-r-pill); color: var(--gbc-home-gold-bright); transition: transform var(--gbc-dur-mid) var(--gbc-ease-out), color var(--gbc-dur-mid) var(--gbc-ease-out), background-color var(--gbc-dur-mid) var(--gbc-ease-out); }
.footer__social-link svg { width: 22px; height: 22px; display: block; fill: currentColor; }
.site-footer .footer__social-link:hover { color: var(--gbc-home-deep); background: var(--gbc-home-gold); transform: translateY(-3px); }
.footer__h {
  margin: 0;
  font-size: var(--gbc-text-xs);
  font-weight: 680;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gbc-home-gold-bright);
}
.footer__contact-row { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: var(--gbc-s-2); align-items: start; margin-top: var(--gbc-s-2); }
.footer__addr { margin: 0; font-size: var(--gbc-text-md); line-height: 1.7; }
.footer__col > a.footer__contact-row { min-height: 44px; align-items: center; font-size: var(--gbc-text-md); overflow-wrap: anywhere; }
.site-footer .footer__col > a:hover { color: var(--gbc-home-gold-bright); }
.footer__contact-icon { display: block; width: 20px; height: 20px; color: var(--gbc-home-gold-bright); fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.footer__times { margin: var(--gbc-s-2) 0 0; padding: 0; list-style: none; max-width: 280px; }
.footer__times li {
  display: flex;
  justify-content: space-between;
  gap: var(--gbc-s-2);
  padding: 7px 0;
  border-bottom: 1px solid var(--gbc-cream-08);
  font-size: var(--gbc-text-md);
}
.footer__times b { color: var(--gbc-home-cream); font-weight: 650; font-variant-numeric: tabular-nums; }
.footer__nav { margin-top: var(--gbc-s-2); }
.footer__nav ul { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.site-footer .footer__nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: var(--gbc-text-md); }
.site-footer .footer__nav a:hover { color: var(--gbc-home-gold-bright); }

.footer__est {
  display: flex;
  align-items: center;
  gap: var(--gbc-s-3);
  margin-top: var(--gbc-s-8);
  text-align: center;
  font-family: var(--gbc-font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.15rem;
  color: var(--gbc-cream-78);
}
.footer__rule { flex: 1; height: 1px; background: var(--gbc-cream-14); }
.footer__est p { margin: 0; max-width: 60ch; text-wrap: balance; }
.footer__bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--gbc-s-2);
  margin-top: var(--gbc-s-5);
  padding-top: var(--gbc-s-3);
  border-top: 1px solid var(--gbc-cream-08);
  font-size: var(--gbc-text-xs);
  color: var(--gbc-cream-62);
}
.footer__bottom a { display: inline-flex; align-items: center; min-height: 44px; color: var(--gbc-home-cream); font-weight: 700; text-decoration: underline; text-decoration-color: var(--gbc-home-gold); text-underline-offset: 3px; }

@media (min-width: 720px) {
  .footer__grid { grid-template-columns: 1.3fr 1fr; }
}
@media (min-width: 1080px) {
  .footer__grid { grid-template-columns: 1.5fr 1fr 1fr .8fr; }
}

/* ============================================================================
   BACK TO TOP (starter anchor, D skin)
   ============================================================================ */
.top {
  position: fixed;
  right: var(--gbc-s-2);
  bottom: var(--gbc-s-2);
  z-index: 60;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: var(--gbc-r-pill);
  background: var(--gbc-pine-deep);
  color: var(--gbc-gold-soft);
  border: 1px solid var(--gbc-cream-14);
  box-shadow: var(--gbc-shadow-sm);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--gbc-dur-mid) var(--gbc-ease-out);
}
.top.is-visible { opacity: 1; pointer-events: auto; }
.top:hover { color: var(--gbc-white); }

/* ============================================================================
   INNER PAGES — inherit the chrome, stay readable
   ============================================================================ */
body:not(.home) .site-main:not(.visit-page):not(.contact-page):not(.about-page):not(.gbc-sermons):not(.ministries-page):not(.missions-page):not(.gospel-page):not(.qr-flow) {
  width: var(--gbc-container);
  margin-inline: auto;
  padding: var(--gbc-s-8) 0 var(--gbc-sec-pad);
}
body:not(.home) .site-main:not(.visit-page):not(.contact-page):not(.about-page):not(.gbc-sermons):not(.ministries-page):not(.missions-page):not(.gospel-page):not(.qr-flow) .page-title {
  font-size: var(--gbc-text-h2);
  color: var(--gbc-pine-deep);
  margin-bottom: var(--gbc-s-4);
}
body:not(.home) .site-main:not(.visit-page):not(.contact-page):not(.about-page):not(.gbc-sermons):not(.ministries-page):not(.missions-page):not(.gospel-page):not(.qr-flow) p { margin: 0 0 1em; max-width: 68ch; }
/* Prose section headings (Privacy Policy and other default pages) had no margins and sat on their text (2026-09-19 QA). */
body:not(.home) .site-main:not(.visit-page):not(.contact-page):not(.about-page):not(.gbc-sermons):not(.ministries-page):not(.missions-page):not(.gospel-page):not(.qr-flow) > h2 { margin: var(--gbc-s-5) 0 var(--gbc-s-2); }
/* 404 is centred: centre the 68ch-capped explanation line under the heading (same selector weight as the rule above). */
body:not(.home) .site-main:not(.visit-page):not(.contact-page):not(.about-page):not(.gbc-sermons):not(.ministries-page):not(.missions-page):not(.gospel-page):not(.qr-flow) .block-error-404 p { margin-inline: auto; }
body:not(.home) .site-main:not(.visit-page):not(.contact-page):not(.about-page):not(.gbc-sermons):not(.ministries-page):not(.missions-page):not(.gospel-page):not(.qr-flow) a:not(.btn) { color: var(--gbc-clay-deep); text-decoration: underline; text-underline-offset: 2px; }
body:not(.home) .site-main:not(.visit-page):not(.contact-page):not(.about-page):not(.gbc-sermons):not(.ministries-page):not(.missions-page):not(.gospel-page):not(.qr-flow) ul,
body:not(.home) .site-main:not(.visit-page):not(.contact-page):not(.about-page):not(.gbc-sermons):not(.ministries-page):not(.missions-page):not(.gospel-page):not(.qr-flow) ol { padding-left: 1.4em; margin: 0 0 1em; }

/* ============================================================================
   REDUCED MOTION — composed stillness for shared chrome
   ============================================================================ */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .btn, .btn::before, .btn__ico, .site-header, .menu-items-wrapper, .top,
  .menu-item > a, .dropdown-toggle__plus::before, .dropdown-toggle__plus::after { transition: none; }
  .btn:hover, .btn:active { transform: none; }
  .btn--primary:hover .btn__ico { transform: none; }
}

/* Footer lockup — approved stacked cursive Grace mark on oxblood. */
.footer__lockup { display: inline-flex; flex-direction: column; line-height: 0; margin-bottom: var(--gbc-s-3); }
.footer__mark { display: block; inline-size: 176px; block-size: auto; }

@media (min-width: 48rem) {
  .footer__mark { inline-size: 184px; }
}

/* ---------------------------------------------------------------------------
   Reveal on entry (0.11.11)
   Sections arrive rather than appear. JS only adds classes; every transition
   lives here. Gated on .js-reveal so the page renders fully visible without JS,
   and disabled entirely under prefers-reduced-motion — the content never
   depends on motion to be readable.
   --------------------------------------------------------------------------- */
.js-reveal [data-reveal] {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 520ms var(--gbc-ease-out), transform 520ms var(--gbc-ease-out);
}

.js-reveal [data-reveal].is-revealed { opacity: 1; transform: none; }

/* Already on screen at first paint: show it, but do not animate under the reader. */
.js-reveal [data-reveal].is-revealed-instant,
.js-reveal.reveal-instant [data-reveal] { transition: none; }

/* Children stagger in after their section, gently and never more than six deep. */
.js-reveal [data-reveal-children] > * {
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 460ms var(--gbc-ease-out), transform 460ms var(--gbc-ease-out);
}

.js-reveal [data-reveal-children].is-revealed > * { opacity: 1; transform: none; }
.js-reveal [data-reveal-children].is-revealed > :nth-child(2) { transition-delay: 70ms; }
.js-reveal [data-reveal-children].is-revealed > :nth-child(3) { transition-delay: 140ms; }
.js-reveal [data-reveal-children].is-revealed > :nth-child(4) { transition-delay: 210ms; }
.js-reveal [data-reveal-children].is-revealed > :nth-child(5) { transition-delay: 280ms; }
.js-reveal [data-reveal-children].is-revealed > :nth-child(n + 6) { transition-delay: 340ms; }

.js-reveal [data-reveal-children].is-revealed-instant > *,
.js-reveal.reveal-instant [data-reveal-children] > * { transition: none; transition-delay: 0s; }

@media (prefers-reduced-motion: reduce) {
  .js-reveal [data-reveal],
  .js-reveal [data-reveal].is-revealed,
  .js-reveal [data-reveal-children] > *,
  .js-reveal [data-reveal-children].is-revealed > * {
    opacity: 1;
    transform: none;
    transition: none;
    transition-delay: 0s;
  }
}

/* ---------------------------------------------------------------------------
   Depth + typographic rhythm (0.11.11)
   Flat colour blocks read as printed panels rather than painted walls: a
   hairline brass rule at the top edge, and a faint warm wash from the top so
   the band has a light source. Text always sits on solid colour, so no
   contrast measurement changes.

   The selectors carry an element (section.x, not .x) ON PURPOSE. This file is
   third in every bundle, and each page stylesheet afterwards re-declares the
   `background` SHORTHAND on these same bands, which resets background-image to
   none. At equal specificity the later file wins and the wash silently
   disappears — it did, until a review caught it. The extra element bumps this
   to (0,1,1) so it no longer depends on source order.
   --------------------------------------------------------------------------- */
section.beliefs-next,
section.gospel-next,
section.ministries-next,
section.visit-welcome-support {
  position: relative;
  background-image: linear-gradient(180deg, var(--gbc-cream-14) 0%, var(--gbc-brass-0) 42%);
}

/* Beliefs already carries a 4px gold border-top; a hairline under it reads as a double rule. */
section.gospel-next::before,
section.ministries-next::before,
section.visit-welcome-support::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  block-size: 1px;
  background: linear-gradient(90deg, var(--gbc-brass-0) 0%, var(--gbc-brass-45) 22%, var(--gbc-brass-45) 78%, var(--gbc-brass-0) 100%);
  pointer-events: none;
}

/* Cards answer the pointer. Touch devices get nothing to hover, hence the query. */
@media (hover: hover) and (pointer: fine) {
  .articles .belief-article,
  .ministry-list > li,
  .event-list > li,
  .gospel-steps > li,
  .missions-card {
    transition: transform 240ms var(--gbc-ease-out), box-shadow 240ms var(--gbc-ease-out);
  }

  .articles .belief-article:hover,
  .ministry-list > li:hover,
  .event-list > li:hover,
  .gospel-steps > li:hover,
  .missions-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px -18px var(--gbc-oxblood-deep-a45);
  }
}

@media (prefers-reduced-motion: reduce) {
  .articles .belief-article,
  .ministry-list > li,
  .event-list > li,
  .gospel-steps > li,
  .missions-card { transition: none; }

  .articles .belief-article:hover,
  .ministry-list > li:hover,
  .event-list > li:hover,
  .gospel-steps > li:hover,
  .missions-card:hover { transform: none; }
}

/* No orphans. Headings already balance (see the rule near the top of this file); these are the
   label and body cases that were not covered (Tito, 2026-09-19). */
.visit-eyebrow,
.gbc-eyebrow { text-wrap: balance; }

p, li, dd, figcaption, blockquote { text-wrap: pretty; }

/* Printing never scrolls, so the observer never fires and every section below the first page
   would print as blank paper. A church prints beliefs statements and event flyers; show
   everything on paper regardless of what the reveal system has done on screen. */
@media print {
  .js-reveal [data-reveal],
  .js-reveal [data-reveal-children] > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
/* ==== source: assets/css/gbc-gospel.css ==== */
/* ============================================================================
   HEAR THE GOSPEL — River Road editorial witness page
   Page-specific presentation; all visual values come from gbc-tokens.css.
   ============================================================================ */

/* Project convention is explicit mobile-first min-width breakpoints. */
/* stylelint-disable media-feature-range-notation */

.gospel-page {
  width: 100%;
  margin: 0;
  padding: 0;
  background: var(--gbc-plaster);
  color: var(--gbc-ink);
}

.gospel-page :where(h1, h2, h3, h4, p, blockquote, ol) { margin-top: 0; }

.gospel-shell {
  width: var(--gbc-container);
  margin-inline: auto;
}

.gospel-eyebrow,
.gospel-path__label {
  margin-bottom: var(--gbc-s-2);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-2xs);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gbc-oak-deep);
}

.gospel-eyebrow::before,
.gospel-path__label::before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 1px;
  margin-right: var(--gbc-s-2);
  vertical-align: .32em;
  background: var(--gbc-brass);
}

.gospel-hero {
  display: grid;
  min-height: min(760px, calc(100svh - var(--gbc-chrome-h)));
  padding-block: var(--gbc-sec-pad);
  background: var(--gbc-plaster);
}

.gospel-hero__inner {
  display: grid;
  align-content: center;
  gap: var(--gbc-s-8);
}

.gospel-hero__copy h1 {
  max-width: 10.5ch;
  margin-bottom: var(--gbc-s-4);
  font-family: var(--gbc-font-display);
  font-size: clamp(3.2rem, 13vw, 5.9rem);
  font-weight: 600;
  line-height: var(--gbc-lh-display);
  letter-spacing: .002em;
  color: var(--gbc-home-deep);
  text-wrap: balance;
}

.gospel-hero__copy h1 em {
  font-weight: 500;
  color: var(--gbc-oxblood);
}

.gospel-hero__lede {
  max-width: 58ch;
  margin-bottom: var(--gbc-s-4);
  font-size: var(--gbc-text-lede);
  line-height: 1.75;
  color: var(--gbc-muted);
}

.gospel-text-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: var(--gbc-s-1);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 700;
  color: var(--gbc-oxblood);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}

.gospel-hero__scripture {
  margin: 0;
  padding: var(--gbc-s-5) var(--gbc-s-4);
  border-top: 1px solid var(--gbc-brass);
  border-bottom: 1px solid var(--gbc-line);
  background: var(--gbc-plaster-2);
}

.gospel-hero__scripture p {
  margin-bottom: var(--gbc-s-3);
  font-family: var(--gbc-font-display);
  font-size: clamp(1.7rem, 1.4rem + 1.4vw, 2.45rem);
  font-style: italic;
  line-height: 1.35;
  color: var(--gbc-home-deep);
  text-wrap: pretty;
}

.gospel-hero__scripture cite,
.gospel-verse cite,
.gospel-anchor cite {
  display: block;
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-2xs);
  font-style: normal;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.gospel-hero__scripture cite,
.gospel-verse cite { color: var(--gbc-oak-deep); }

.gospel-road,
.gospel-decision { padding-block: var(--gbc-sec-pad); }

.gospel-road { background: var(--gbc-plaster-2); }

.gospel-section-heading {
  max-width: 720px;
  margin-bottom: var(--gbc-s-8);
}

.gospel-section-heading h2,
.gospel-next h2 {
  margin-bottom: var(--gbc-s-3);
  font-family: var(--gbc-font-display);
  font-size: var(--gbc-text-h2);
  font-weight: 600;
  line-height: var(--gbc-lh-display);
  color: var(--gbc-home-deep);
  text-wrap: balance;
}

.gospel-section-heading > p:last-child,
.gospel-next__inner > div:first-child > p:last-child {
  max-width: 58ch;
  margin-bottom: 0;
  font-size: var(--gbc-text-lede);
  line-height: 1.7;
  color: var(--gbc-muted);
}

.gospel-steps {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--gbc-line);
}

.gospel-step {
  display: grid;
  gap: var(--gbc-s-3);
  padding-block: var(--gbc-s-6);
  border-bottom: 1px solid var(--gbc-line);
}

.gospel-step__number {
  margin-bottom: 0;
  font-family: var(--gbc-font-display);
  font-size: 2rem;
  font-style: italic;
  line-height: 1;
  color: var(--gbc-oxblood);
}

.gospel-step h3,
.gospel-path h3 {
  margin-bottom: var(--gbc-s-3);
  font-family: var(--gbc-font-display);
  font-size: var(--gbc-text-h3);
  font-weight: 600;
  line-height: 1.15;
  color: var(--gbc-home-deep);
  text-wrap: balance;
}

.gospel-verse {
  margin: 0 0 var(--gbc-s-3);
  padding: 0 0 0 var(--gbc-s-3);
  border-left: 3px solid var(--gbc-oxblood);
}

.gospel-verse p {
  max-width: 62ch;
  margin-bottom: var(--gbc-s-2);
  font-family: var(--gbc-font-body);
  font-size: var(--gbc-text-lede);
  font-style: italic;
  line-height: 1.7;
  color: var(--gbc-ink);
  text-wrap: pretty;
}

.gospel-step__note {
  max-width: 58ch;
  margin-bottom: 0;
  line-height: 1.7;
  color: var(--gbc-muted);
}

.gospel-anchor {
  position: relative;
  overflow: hidden;
  background: var(--gbc-oxblood-deep);
  color: var(--gbc-cream);
}

.gospel-anchor__media,
.gospel-anchor__media img {
  display: block;
  width: 100%;
}

.gospel-anchor__media img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center;
}

.gospel-anchor .gospel-eyebrow { color: var(--gbc-brass-soft); }

.gospel-anchor__inner {
  display: grid;
  gap: var(--gbc-s-4);
  padding-block: var(--gbc-sec-pad);
}

.gospel-anchor h2 {
  max-width: 16ch;
  margin-bottom: 0;
  font-family: var(--gbc-font-display);
  font-size: var(--gbc-text-h2);
  font-weight: 600;
  line-height: 1.08;
  color: var(--gbc-cream);
  text-wrap: balance;
}

.gospel-anchor blockquote {
  margin: 0;
  padding-top: var(--gbc-s-4);
  border-top: 1px solid var(--gbc-cream-28);
}

.gospel-anchor blockquote p {
  max-width: 58ch;
  margin-bottom: var(--gbc-s-3);
  font-family: var(--gbc-font-display);
  font-size: clamp(1.35rem, 1.2rem + .8vw, 1.85rem);
  font-style: italic;
  line-height: 1.55;
  color: var(--gbc-cream);
}

.gospel-anchor cite { color: var(--gbc-brass-soft); }

.gospel-decision { background: var(--gbc-plaster); }

.gospel-section-heading--decision { margin-bottom: var(--gbc-s-6); }

.gospel-decision__question {
  padding: var(--gbc-s-5) var(--gbc-s-4);
  border-top: 1px solid var(--gbc-brass);
  border-bottom: 1px solid var(--gbc-line);
  background: var(--gbc-plaster-2);
}

.gospel-decision__question > p {
  max-width: 28ch;
  margin-bottom: var(--gbc-s-4);
  font-family: var(--gbc-font-display);
  font-size: clamp(1.6rem, 1.35rem + 1vw, 2.15rem);
  font-weight: 600;
  line-height: 1.25;
  color: var(--gbc-home-deep);
}

.gospel-decision__choices,
.gospel-next__actions {
  display: flex;
  flex-direction: column;
  gap: var(--gbc-s-2);
}

.gospel-choice,
.gospel-button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: var(--gbc-s-2);
  padding: var(--gbc-s-2) var(--gbc-s-3);
  border: 1px solid var(--gbc-line);
  border-radius: var(--gbc-r-pill);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
}

.gospel-choice {
  background: var(--gbc-cream);
  color: var(--gbc-oxblood-deep);
}

.gospel-choice--primary {
  border-color: var(--gbc-oxblood);
  background: var(--gbc-oxblood);
  color: var(--gbc-cream);
}

.gospel-choice:is(:hover, :focus-visible) {
  border-color: var(--gbc-oxblood);
  color: var(--gbc-oxblood-deep);
}

.gospel-choice--primary:is(:hover, :focus-visible) {
  border-color: var(--gbc-oxblood-deep);
  background: var(--gbc-oxblood-deep);
  color: var(--gbc-cream);
}

.gospel-decision__paths {
  display: grid;
  gap: var(--gbc-s-6);
  margin-top: var(--gbc-s-10);
}

.gospel-path {
  scroll-margin-top: var(--gbc-anchor-offset);
  padding: var(--gbc-s-5) var(--gbc-s-4);
  border: 1px solid var(--gbc-line);
  background: var(--gbc-cream);
}

.gospel-path > p {
  max-width: 62ch;
  line-height: 1.7;
}

.gospel-assurance,
.gospel-next-steps {
  margin-top: var(--gbc-s-6);
  padding-top: var(--gbc-s-5);
  border-top: 1px solid var(--gbc-line);
}

.gospel-assurance h4,
.gospel-next-steps h4 {
  margin-bottom: var(--gbc-s-3);
  font-family: var(--gbc-font-display);
  font-size: var(--gbc-text-h4);
  color: var(--gbc-home-deep);
}

.gospel-assurance > p:last-child {
  margin-bottom: 0;
  color: var(--gbc-muted);
}

.gospel-next-steps ol {
  display: grid;
  gap: var(--gbc-s-3);
  margin: 0;
  padding-left: 1.35em;
}

.gospel-next-steps li {
  padding-left: var(--gbc-s-1);
  line-height: 1.65;
}

.gospel-faq {
  margin-top: var(--gbc-s-5);
  border-top: 1px solid var(--gbc-line);
}

.gospel-faq details { border-bottom: 1px solid var(--gbc-line); }

.gospel-faq summary {
  display: flex;
  min-height: 56px;
  align-items: center;
  justify-content: space-between;
  gap: var(--gbc-s-2);
  padding-block: var(--gbc-s-2);
  cursor: pointer;
  font-weight: 600;
  color: var(--gbc-home-deep);
}

.gospel-faq summary::after {
  content: "+";
  flex: 0 0 auto;
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-h4);
  color: var(--gbc-oxblood);
}

.gospel-faq details[open] summary::after { content: "−"; }

.gospel-faq details > p {
  max-width: 58ch;
  margin-bottom: var(--gbc-s-3);
  line-height: 1.7;
  color: var(--gbc-muted);
}

.gospel-next {
  padding-block: var(--gbc-sec-pad);
  background: var(--gbc-oxblood);
  color: var(--gbc-cream);
}

.gospel-next .gospel-eyebrow { color: var(--gbc-brass-soft); }
.gospel-next h2 { color: var(--gbc-cream); }

.gospel-next__inner {
  display: grid;
  gap: var(--gbc-s-6);
}

.gospel-next__inner > div:first-child > p:last-child { color: var(--gbc-cream-78); }

.gospel-button--light {
  border-color: var(--gbc-cream);
  background: var(--gbc-cream);
  color: var(--gbc-oxblood-deep);
}

.gospel-button--outline {
  border-color: var(--gbc-cream-28);
  background: transparent;
  color: var(--gbc-cream);
}

.gospel-button--light:is(:hover, :focus-visible) {
  background: var(--gbc-plaster-2);
  color: var(--gbc-oxblood-deep);
}

.gospel-button--outline:is(:hover, :focus-visible) {
  border-color: var(--gbc-cream);
  color: var(--gbc-cream);
}

@media (min-width: 48rem) {
  .gospel-hero__inner {
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .75fr);
    align-items: center;
    gap: var(--gbc-s-10);
  }

  .gospel-hero__scripture {
    padding: var(--gbc-s-6);
  }

  .gospel-step {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: var(--gbc-s-4);
    padding-block: var(--gbc-s-8);
  }

  .gospel-step__number {
    font-size: 2.5rem;
  }

  .gospel-anchor__inner {
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    column-gap: var(--gbc-s-10);
  }

  .gospel-anchor .gospel-eyebrow {
    grid-column: 1 / -1;
  }

  .gospel-anchor blockquote {
    padding: 0 0 0 var(--gbc-s-6);
    border-top: 0;
    border-left: 1px solid var(--gbc-cream-28);
  }

  .gospel-decision__question {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .7fr);
    align-items: center;
    gap: var(--gbc-s-6);
    padding: var(--gbc-s-6);
  }

  .gospel-decision__question > p {
    margin-bottom: 0;
  }

  .gospel-decision__choices,
  .gospel-next__actions {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .gospel-choice {
    min-width: 220px;
  }

  .gospel-decision__paths {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
  }

  .gospel-path {
    padding: var(--gbc-s-6);
  }

}

@media (min-width: 64rem) {
  /* Two columns only from the wide layout: at 768-1023px it squeezed the heading (2026-09-19 QA). */
  .gospel-next__inner {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
  }

  .gospel-next__actions {
    justify-content: flex-end;
  }

  /* Desktop shows the whole illustration, unobscured, as a band above the text — the same order as
     phone/tablet. It used to sit behind the text under a 95% oxblood gradient, which hid the figure
     on the bridge (2026-09-19 QA). Text now sits on solid oxblood, so no contrast scrim is needed.
     2:1 keeps the figure, cross, tomb and Bible in frame without filling a 1920px screen. */
  .gospel-anchor__media img {
    aspect-ratio: 2 / 1;
    max-height: 760px;
    object-position: 50% 62%;
  }
}

@media (min-width: 80rem) {
  .gospel-road .gospel-shell {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: var(--gbc-s-10);
  }

  .gospel-road .gospel-section-heading {
    position: sticky;
    top: calc(var(--gbc-chrome-h) + var(--gbc-s-4));
    align-self: start;
    margin-bottom: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gospel-page * {
    scroll-behavior: auto;
  }
}
/* ==== source: assets/css/gbc-heroes.css ==== */
/* Approved September 2 hero family. Photos fill their adjoining panel;
   copy starts at the same inset, without viewport-height whitespace. */
:root {
  --gbc-hero-inset: var(--gbc-s-4);
  --gbc-hero-heading: clamp(2.75rem, 5vw, 4.5rem);
  --gbc-hero-heading-long: clamp(2.375rem, 4.3vw, 3.875rem);
}

.ministries-hero, .missions-hero, .visit-hero__grid, .contact-open {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-height: 0;
  background: var(--gbc-plaster);
  color: var(--gbc-oxblood-deep);
  gap: 0;
}
.ministries-hero__copy, .missions-hero__copy, .visit-hero__content, .contact-open__intro {
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0;
  padding: var(--gbc-hero-inset) var(--gbc-gutter) var(--gbc-s-5);
  align-self: start;
  align-content: start;
  background: var(--gbc-plaster);
  color: var(--gbc-oxblood-deep);
  order: 0;
}
.ministries-page .ministries-hero h1, .missions-page .missions-hero h1,
.visit-page .visit-hero h1, .contact-page .contact-open h1, .events-page .events-hero h1 {
  margin: 0;
  max-width: 12ch;
  color: var(--gbc-oxblood-deep);
  font-size: var(--gbc-hero-heading);
  font-weight: 500;
  letter-spacing: -.03em;
  line-height: 1.08;
  text-wrap: balance;
}
.missions-page .missions-hero h1, .visit-page .visit-hero h1 {
  max-width: 18ch;
  font-size: var(--gbc-hero-heading-long);
}
.contact-page .contact-open h1 em, .events-page .events-hero h1 em {
  color: var(--gbc-oxblood);
}
.ministries-hero__lede, .missions-hero__copy > p:not(.missions-kicker),
.visit-hero__copy, .contact-open__lede, .events-hero__inner > div:first-child > p:not(.events-kicker) {
  max-width: 56ch;
  margin: var(--gbc-s-3) 0 0;
  color: var(--gbc-muted);
  font-size: 1.125rem;
  line-height: 1.65;
}
.visit-hero__content::after, .visit-hero__media::after,
.ministries-hero__art::after, .missions-hero__map::after,
.contact-open__intro::after, .events-hero::before, .events-hero__copy::after {
  content: none;
}
.ministries-hero__art, .missions-hero__map, .visit-hero__media {
  position: relative;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 4 / 3;
  align-self: stretch;
  overflow: hidden;
  order: 1;
}
.visit-hero__media { aspect-ratio: 1; }
.ministries-hero__art img, .missions-hero__map img, .visit-hero__media picture, .visit-hero__media img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: none;
}
/* Match the starter's img[width][height] specificity so intrinsic aspect-ratio
   sizing cannot shorten a cover image and expose the panel background. */
.ministries-page .ministries-hero__art img, .missions-page .missions-hero__map img,
.visit-page .visit-hero__media img { height: 100%; }
/* Retain descriptive captions for assistive technology, without a visual frame. */
.ministries-hero__art figcaption, .missions-hero__map figcaption, .visit-hero__media figcaption {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 0;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.visit-hero__actions { display: flex; flex-wrap: wrap; margin-top: var(--gbc-s-3); }
.visit-hero__actions .visit-button { min-height: 52px; padding-inline: var(--gbc-s-3); font-size: 1rem; font-family: var(--gbc-font-body); text-transform: none; letter-spacing: 0; }
.visit-page .visit-hero__actions a.visit-button { background: var(--gbc-oxblood); color: var(--gbc-cream) !important; }
.visit-page .visit-hero__actions a.visit-button:is(:hover, :focus-visible) { background: var(--gbc-oxblood-deep); color: var(--gbc-cream) !important; }
.ministries-hero .ministry-text-link, .missions-hero .missions-text-link.btn { margin-top: var(--gbc-s-3); font-family: var(--gbc-font-body); font-size: 1rem; text-transform: none; letter-spacing: 0; }
.visit-hero__times { margin-top: var(--gbc-s-5); border-top: 1px solid var(--gbc-line); padding-top: var(--gbc-s-2); }
.visit-hero__times dl { margin: 0; }
.visit-hero__times dl > div { display: flex; justify-content: space-between; gap: var(--gbc-s-2); padding-block: var(--gbc-s-05); }
.visit-hero__times dt, .visit-hero__times dd { margin: 0; font-size: 1rem; font-weight: 400; }
.visit-hero__times dd { white-space: nowrap; }
.visit-hero__times a, .hero-schedule-link { min-height: 44px; display: inline-flex; align-items: center; margin-top: var(--gbc-s-2); color: var(--gbc-oxblood); text-decoration: underline; text-underline-offset: .25em; }
.visit-welcome-support { padding: var(--gbc-s-6) 0; background: var(--gbc-plaster); }
.visit-welcome-support .wrap { max-width: 56rem; }
/* Styled like the rest of the site's scripture: display-font verse on a gold rule, small-caps reference (2026-09-19 QA). */
.visit-welcome-support__tagline { margin-bottom: var(--gbc-s-2); color: var(--gbc-home-deep); font-family: var(--gbc-font-display); font-size: var(--gbc-text-h2); font-weight: 600; line-height: var(--gbc-lh-display); text-wrap: balance; }
.visit-welcome-support blockquote { margin: var(--gbc-s-5) 0; padding: var(--gbc-s-1) 0 var(--gbc-s-1) var(--gbc-s-3); border: 0; border-left: 3px solid var(--gbc-home-gold); }
.visit-welcome-support blockquote p { margin-bottom: var(--gbc-s-1); color: var(--gbc-oxblood); font-family: var(--gbc-font-display); font-size: var(--gbc-text-h3); font-style: italic; line-height: 1.35; text-wrap: pretty; }
.visit-welcome-support cite { display: block; color: var(--gbc-oak-deep); font-family: var(--gbc-font-ui); font-size: var(--gbc-text-2xs); font-style: normal; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }

.contact-open__intro { padding-bottom: var(--gbc-s-3); }
.contact-open__routes { padding: 0 var(--gbc-gutter) var(--gbc-s-5); align-content: start; }
.contact-open .contact-route-list { width: 100%; max-width: none; margin: 0; }
.contact-open .contact-route { grid-template-columns: minmax(0, 1fr); min-height: 88px; padding-block: var(--gbc-s-2); }
.contact-open .contact-route__number, .contact-open .contact-route__arrow { display: none; }
.contact-open .contact-route__copy { gap: var(--gbc-s-05); }
.contact-open .contact-route__copy small { font-size: .875rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
.contact-open .contact-route__copy strong { font-size: 1.25rem; font-weight: 500; }

.events-page .events-hero {
  min-height: 0;
  padding: var(--gbc-hero-inset) var(--gbc-gutter) var(--gbc-s-5);
  background: var(--gbc-plaster);
  color: var(--gbc-oxblood-deep);
}
.events-hero__inner { gap: var(--gbc-s-4); max-width: none; grid-template-columns: minmax(0, 1fr); }
.events-hero__inner > div:first-child > .events-kicker { margin: 0 0 var(--gbc-s-3); color: var(--gbc-muted); font-size: .875rem; line-height: 1.5; font-weight: 500; text-transform: none; letter-spacing: 0; }
.events-kicker span { display: inline; padding: 0; border: 0; min-height: 0; min-width: 0; white-space: nowrap; }
.events-hero .events-next { align-self: start; padding: var(--gbc-s-3) 0; border: 0; border-block: 1px solid var(--gbc-line); border-radius: 0; background: none; box-shadow: none; }
.events-next > p { color: var(--gbc-muted); font-size: .875rem; font-weight: 500; text-transform: none; letter-spacing: 0; }
.events-hero .events-next__link, .events-hero .events-next__date { color: var(--gbc-oxblood); }
.events-hero .events-next__date { border-color: var(--gbc-line); }
.events-hero .events-next__copy span { color: var(--gbc-muted); }
.events-hero .events-next__link:is(:hover, :focus-visible) .events-next__copy strong { color: var(--gbc-oxblood-deep); }
.events-hero .events-next__arrow { display: none; }
.events-hero .events-next__link { grid-template-columns: auto minmax(0, 1fr); }
.events-hero .hero-schedule-link:is(:hover, :focus-visible) { color: var(--gbc-oxblood-deep); }
.events-page .events-heading h2 em { color: var(--gbc-oxblood); }

/* Spacing-only pass on sibling pages; preserve their approved imagery/copy. */
.about-hero, .beliefs-hero, .gbc-sermons .sermons-hero { min-height: 0; }
.about-hero__copy, .beliefs-hero__copy { padding-block: var(--gbc-hero-inset); align-self: start; }
.beliefs-hero__art::after { content: none; }
.gbc-sermons .sermons-hero__copy { min-height: 0; justify-content: flex-start; padding-block: var(--gbc-hero-inset); }
.gospel-page .gospel-hero { min-height: 0; padding-block: var(--gbc-hero-inset); }
.gospel-hero__inner { align-content: start; }
.event-detail { padding-top: var(--gbc-hero-inset); }
.event-detail__hero { border: 0; border-radius: 0; box-shadow: none; }
body:not(.home) .site-main.sermon-single:not(.visit-page):not(.contact-page):not(.about-page):not(.gbc-sermons):not(.ministries-page):not(.missions-page):not(.gospel-page) { padding-top: 0; }
.sermon-single .sermon-single__hero { padding-top: var(--gbc-hero-inset); }
body.page-template-default:not(.home) .site-main:not(.visit-page):not(.contact-page):not(.about-page):not(.gbc-sermons):not(.ministries-page):not(.missions-page):not(.gospel-page) { padding-top: var(--gbc-hero-inset); }

@media (min-width: 1030px) {
  :root { --gbc-hero-inset: var(--gbc-s-6); }
  .ministries-hero, .missions-hero, .visit-hero__grid, .contact-open { grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 560px; align-items: stretch; }
  .ministries-hero__copy, .missions-hero__copy, .visit-hero__content, .contact-open__intro { padding: var(--gbc-hero-inset) var(--gbc-gutter); align-self: start; }
  .ministries-hero__art, .missions-hero__map, .visit-hero__media { aspect-ratio: auto; min-height: 100%; height: 100%; }
  .contact-page .contact-open { min-height: 440px; }
  .contact-open__routes { padding: var(--gbc-hero-inset) var(--gbc-gutter); }
  .events-page .events-hero { min-height: 440px; padding-block: var(--gbc-hero-inset); }
  .events-hero__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gbc-s-6); }
  .events-hero .events-next { margin-top: 0; align-self: center; }
  .about-hero, .beliefs-hero { min-height: 560px; }
  .about-hero__copy, .beliefs-hero__copy { padding: var(--gbc-hero-inset) var(--gbc-gutter); }
  .gbc-sermons .sermons-hero { min-height: 560px; }
}
/* ==== source: assets/css/gbc-photo-heroes.css ==== */
/* Approved lighter-tint inner-page family. Homepage and detail pages are untouched. */
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero {
  position: relative; isolation: isolate; overflow: hidden; display: block;
  min-height: 416px; margin: 0; padding: 0; background: var(--gbc-plaster);
  color: var(--gbc-ink); border-bottom: 1px solid var(--gbc-line);
}
/* AVIF <picture> wrapper: no box of its own, so the photo still positions against the hero. */
.gbc-photo-hero__media { display: contents; }
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero .gbc-photo-hero__photo {
  position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%;
  max-width: 100%; max-height: none; object-fit: cover; object-position: 56% 32%;
  filter: none; margin: 0;
}
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero--sermons .gbc-photo-hero__photo { object-position: 0 24%; }
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, var(--gbc-photo-paper-88) 0%, var(--gbc-photo-paper-80) 58%, var(--gbc-photo-paper-60) 100%);
}
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__copy { padding: 32px 24px 40px; width: 100%; min-width: 0; }
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero h1 {
  margin: 0; max-width: 14ch; color: var(--gbc-oxblood-deep);
  font-family: var(--gbc-font-display); font-size: 44px; font-weight: 500;
  line-height: 1.08; letter-spacing: -.025em; text-wrap: balance;
}
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero h1 em { color: var(--gbc-oxblood); font-weight: 500; }
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__lede {
  max-width: 46ch; margin: 16px 0 0; color: var(--gbc-ink);
  font-family: var(--gbc-font-body); font-size: 18px; font-weight: 400; line-height: 1.65;
}
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero a.gbc-photo-hero__action {
  display: inline-flex; align-items: center; min-height: 44px; margin-top: 24px;
  padding: 0; border: 0; color: var(--gbc-oxblood); background: transparent;
  font-family: var(--gbc-font-body); font-size: 17px; font-weight: 600; line-height: 1.65;
  text-transform: none; letter-spacing: 0; text-decoration: underline; text-underline-offset: 6px;
}
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero a:is(:hover, :focus-visible) { color: var(--gbc-oxblood-deep); }
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero a:focus-visible { outline: 3px solid var(--gbc-oxblood); outline-offset: 4px; }
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero--events .gbc-photo-hero__copy { padding-bottom: 24px; }
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__calendar {
  margin: 0 0 16px; color: var(--gbc-ink); font-family: var(--gbc-font-ui);
  font-size: 14px; font-weight: 500; line-height: 1.65; letter-spacing: 0; text-transform: none; white-space: nowrap;
}
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__utility { padding: 0 24px 32px; }
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__next { border-block: 1px solid var(--gbc-line); padding: 24px 0; }
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__next > p {
  margin: 0 0 16px; color: var(--gbc-ink); font-family: var(--gbc-font-ui); font-size: 14px; line-height: 1.65;
}
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__next a {
  display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 24px;
  align-items: center; min-height: 64px; text-decoration: none; color: var(--gbc-oxblood);
}
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__date {
  font-family: var(--gbc-font-ui); font-size: 14px; line-height: 1.65; text-align: center;
  border-right: 1px solid var(--gbc-line); padding-right: 16px;
}
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__date strong { display: block; font-family: var(--gbc-font-display); font-size: 42px; line-height: 1.1; font-weight: 500; }
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__event-title { display: block; font-family: var(--gbc-font-display); font-size: 28px; line-height: 1.25; font-weight: 600; color: var(--gbc-oxblood-deep); }
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__next a:is(:hover, :focus-visible) .gbc-photo-hero__event-title { color: var(--gbc-oxblood-deep); text-decoration: underline; text-underline-offset: 5px; }
:is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__time { display: block; margin-top: 8px; color: var(--gbc-ink); font-family: var(--gbc-font-body); font-size: 17px; line-height: 1.65; }
@media (min-width:720px) {
  :is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__copy { padding: 32px 48px; width: 72%; }
  :is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__utility { padding: 0 48px 32px; width: 72%; }
  :is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero h1 { font-size: 52px; }
  :is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero::before { background: linear-gradient(90deg, var(--gbc-photo-paper-92) 0%, var(--gbc-photo-paper-86) 48%, var(--gbc-photo-paper-60) 66%, var(--gbc-photo-paper-05) 100%); }
  :is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero .gbc-photo-hero__photo { object-position: 55% 26%; }
}
@media (min-width:1100px) {
  :is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero { min-height: 440px; }
  :is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__copy, :is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero--events .gbc-photo-hero__copy { width: 56%; padding: 48px clamp(32px,4vw,80px) 32px; }
  :is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero__utility { width: 56%; padding: 0 clamp(32px,4vw,80px) 40px; }
  :is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero h1 { font-size: clamp(56px,4.5vw,72px); }
  :is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero::before { background: linear-gradient(90deg, var(--gbc-photo-paper-92) 0%, var(--gbc-photo-paper-86) 44%, var(--gbc-photo-paper-24) 65%, var(--gbc-photo-paper-05) 100%); }
  :is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero--sermons .gbc-photo-hero__photo { width: 130%; object-position: 0 18%; }
  :is(.gbc-sermons, .events-page, .gbc-inner-pages) .gbc-photo-hero--events .gbc-photo-hero__photo { object-position: 50% 64%; }
}

/* Seven inner pages reuse the approved photo, tint, spacing and action system. */
.gbc-inner-pages .gbc-photo-hero--long h1 { font-size: 38px; max-width: 19ch; }
.gbc-inner-pages .gbc-photo-hero__picture { position: absolute; inset: 0; z-index: -2; display: block; margin: 0; }
.gbc-inner-pages .gbc-photo-hero__picture img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: 100%; object-fit: cover; object-position: 50% 55%; }
/* Descendant (not child) selectors: some heroes wrap the photo in an AVIF <picture>. */
.gbc-inner-pages .gbc-photo-hero--about .gbc-photo-hero__photo,
.gbc-inner-pages .gbc-photo-hero--gospel .gbc-photo-hero__photo { object-position: 50% 45%; }
.gbc-inner-pages .gbc-photo-hero--beliefs .gbc-photo-hero__photo { object-position: 62% 58%; }
.gbc-inner-pages .gbc-photo-hero--ministries .gbc-photo-hero__photo { object-position: 55% 48%; }
.gbc-inner-pages .gbc-photo-hero--missions .gbc-photo-hero__photo { object-position: 58% 35%; }
.gbc-inner-pages .gbc-photo-hero--contact .gbc-photo-hero__photo { object-position: 50% 58%; }
/* Outrank the legacy Ministries page-wide link reset for this shared action. */
#main-content.ministries-page .gbc-photo-hero a.gbc-photo-hero__action { color: var(--gbc-oxblood); text-decoration: underline; }
#main-content.ministries-page .gbc-photo-hero a.gbc-photo-hero__action:is(:hover, :focus-visible) { color: var(--gbc-oxblood-deep); }
.gbc-inner-pages .gbc-photo-hero .about-hero__actions,
.gbc-inner-pages .gbc-photo-hero .visit-hero__actions { display: flex; flex-wrap: wrap; gap: 0 24px; margin: 0; }
.gbc-inner-pages .gbc-photo-hero .visit-hero__times { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--gbc-line); max-width: 440px; }
.gbc-inner-pages .gbc-photo-hero .visit-hero__times dl { margin: 0; }
.gbc-inner-pages .gbc-photo-hero .visit-hero__times dl > div { display: flex; justify-content: space-between; gap: 16px; padding: 4px 0; }
.gbc-inner-pages .gbc-photo-hero .visit-hero__times dt,
.gbc-inner-pages .gbc-photo-hero .visit-hero__times dd { margin: 0; font: 400 17px/1.65 var(--gbc-font-body); color: var(--gbc-ink); }
.gbc-inner-pages .gbc-photo-hero .visit-hero__times dd { white-space: nowrap; }
.gbc-inner-pages .gbc-photo-hero .visit-hero__times a { display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; color: var(--gbc-oxblood); font: 600 17px/1.65 var(--gbc-font-body); text-decoration: underline; text-underline-offset: 6px; }
.gbc-inner-pages .gbc-photo-hero--contact .gbc-photo-hero__copy { padding-bottom: 24px; }
.gbc-inner-pages .gbc-photo-hero .contact-open__routes { display: block; background: none; margin: 0; }
.gbc-inner-pages .gbc-photo-hero .contact-route-list { width: 100%; max-width: 100%; margin: 0; }
.gbc-inner-pages .gbc-photo-hero .contact-route { display: block; min-height: 64px; padding: 12px 0; border: 0; border-top: 1px solid var(--gbc-line); background: none; color: var(--gbc-oxblood-deep); text-decoration: none; transform: none; }
.gbc-inner-pages .gbc-photo-hero .contact-route__copy { display: grid; gap: 4px; }
.gbc-inner-pages .gbc-photo-hero .contact-route__number,
.gbc-inner-pages .gbc-photo-hero .contact-route__arrow { display: none; }
.gbc-inner-pages .gbc-photo-hero .contact-route__copy small { color: var(--gbc-ink); font: 500 14px/1.65 var(--gbc-font-ui); text-transform: none; letter-spacing: 0; }
.gbc-inner-pages .gbc-photo-hero .contact-route__copy strong { color: var(--gbc-oxblood-deep); font: 500 19px/1.4 var(--gbc-font-body); overflow-wrap: anywhere; }
.gbc-inner-pages .gbc-photo-hero .contact-route__copy > span { color: var(--gbc-ink); font: 400 16px/1.5 var(--gbc-font-body); }
.gbc-inner-pages .gbc-photo-hero .contact-route:is(:hover, :focus-visible) strong { color: var(--gbc-oxblood-deep); text-decoration: underline; text-underline-offset: 4px; }
.gbc-inner-pages .gbc-photo-scripture { margin: 0; padding: 32px 24px; background: var(--gbc-plaster); color: var(--gbc-ink); border-bottom: 1px solid var(--gbc-line); }
.gbc-inner-pages .gbc-photo-scripture__quote { max-width: 65ch; margin: auto; padding: 0; border: 0; }
.gbc-inner-pages .gbc-photo-scripture__quote p { margin: 0; color: var(--gbc-ink); font: italic 400 18px/1.65 var(--gbc-font-body); }
.gbc-inner-pages .gbc-photo-scripture__quote cite { display: block; margin-top: 16px; color: var(--gbc-oxblood); font: 500 14px/1.65 var(--gbc-font-ui); }
@media (min-width: 720px) {
  .gbc-inner-pages .gbc-photo-hero--long h1 { font-size: 46px; }
  .gbc-inner-pages .gbc-photo-scripture { padding: 32px 48px; }
}
@media (min-width: 1100px) {
  .gbc-inner-pages .gbc-photo-hero--long h1 { font-size: clamp(48px, 3.6vw, 62px); }
}
