/* 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-missions.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-missions.css ==== */
.missions-page *, .missions-page *::before, .missions-page *::after { box-sizing: border-box; }
.missions-page {
  background: var(--gbc-plaster);
  color: var(--gbc-ink);
  font-family: var(--gbc-font-body);
  overflow-x: hidden;
}
body:not(.home) .site-main.missions-page { margin-inline: 0; padding: 0; width: auto; }
.missions-page h1, .missions-page h2, .missions-page h3, .missions-page h4, .missions-page p { margin-top: 0; }
.missions-page h1, .missions-page h2, .missions-page h3, .missions-page h4 { color: inherit; font-family: var(--gbc-font-display); }

.missions-kicker, .missions-label {
  color: var(--gbc-oxblood);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-xs);
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.missions-hero {
  min-height: var(--gbc-page-hero-min-h);
  display: flex;
  flex-direction: column;
  background: var(--gbc-plaster);
}

.missions-hero__copy {
  width: var(--gbc-container);
  margin-inline: auto;
  padding-block: var(--gbc-page-hero-copy-pad);
}
.missions-hero h1 { font-size: var(--gbc-page-hero-title); letter-spacing: -.035em; line-height: .94; margin-bottom: var(--gbc-s-4); }
.missions-hero h1 em, .missions-local h2 em, .missions-prayer h2 em { color: var(--gbc-oxblood); font-weight: 500; }
.missions-hero__copy > p:not(.missions-kicker) { color: var(--gbc-muted); font-size: var(--gbc-text-lede); line-height: 1.72; max-width: 42rem; }
.missions-text-link.btn { align-items: center; border: 0; border-radius: 0; color: var(--gbc-oxblood); display: inline-flex; font-family: var(--gbc-font-ui); font-size: var(--gbc-text-sm); font-weight: 700; gap: var(--gbc-s-2); min-height: 44px; overflow: visible; padding: 0; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }

.missions-hero__map { display: grid; grid-template-rows: auto auto; background: var(--gbc-oxblood-deep); margin: 0; overflow: hidden; position: relative; }
.missions-hero__map::after { border: 1px solid var(--gbc-home-gold-a55); content: ""; inset: var(--gbc-s-3); pointer-events: none; position: absolute; }
.missions-hero__map img { display: block; height: auto; object-fit: contain; width: 100%; }
.missions-hero__map figcaption { align-items: center; background: var(--gbc-home-deep); border-top: 1px solid var(--gbc-home-gold-a55); color: var(--gbc-home-cream); display: flex; font-family: var(--gbc-font-ui); font-size: var(--gbc-text-xs); font-weight: 700; justify-content: flex-end; letter-spacing: .1em; line-height: 1.45; min-height: 52px; padding: var(--gbc-s-1) var(--gbc-gutter); position: relative; text-align: right; text-transform: uppercase; z-index: 1; }

.missions-local, .missions-directory { padding: var(--gbc-sec-pad) var(--gbc-gutter); }
.missions-local { background: var(--gbc-oxblood-deep); color: var(--gbc-cream); }
.missions-local > *, .missions-directory > *, .missions-prayer > *, .missions-gospel > * { min-width: 0; }
.missions-section-heading, .missions-local__body, .missions-directory__head, .missions-prayer, .missions-gospel { margin-inline: auto; max-width: 1240px; }
.missions-local .missions-label { color: var(--gbc-brass-soft); }
.missions-local h2, .missions-prayer h2, .missions-directory h2, .missions-gospel h2 { font-size: var(--gbc-text-h2); line-height: 1.04; }
.missions-local h2 em { color: var(--gbc-brass-soft); }
.missions-local__body { display: grid; gap: var(--gbc-s-5); }
.missions-local__lede { color: var(--gbc-cream-78); font-size: var(--gbc-text-lede); line-height: 1.7; }
.missions-local__lines { border-top: 1px solid var(--gbc-cream-line); }
.missions-local__lines article { border-bottom: 1px solid var(--gbc-cream-line); display: grid; gap: var(--gbc-s-3); grid-template-columns: 44px 1fr; padding-block: var(--gbc-s-3); }
.missions-local__lines article > span { color: var(--gbc-brass-soft); font-family: var(--gbc-font-ui); font-size: var(--gbc-text-sm); font-weight: 700; }
.missions-local__lines h3 { font-size: var(--gbc-text-h4); margin-bottom: var(--gbc-s-1); }
.missions-local__lines p { color: var(--gbc-cream-78); line-height: 1.65; margin-bottom: 0; }

.missions-prayer { display: grid; gap: var(--gbc-s-6); padding: var(--gbc-sec-pad) var(--gbc-gutter); }
.missions-prayer__statement > p:last-child { color: var(--gbc-muted); font-size: var(--gbc-text-base); line-height: 1.75; max-width: 42rem; }
.missions-prayer__rhythm { counter-reset: prayer; list-style: none; margin: 0; padding: 0; }
.missions-prayer__rhythm li { border-top: 1px solid var(--gbc-line); display: grid; gap: var(--gbc-s-1); min-height: 112px; padding: var(--gbc-s-3) 0; }
.missions-prayer__rhythm li:last-child { border-bottom: 1px solid var(--gbc-line); }
.missions-prayer__rhythm strong { font-family: var(--gbc-font-display); font-size: var(--gbc-text-h4); font-weight: 500; }
.missions-prayer__rhythm span { color: var(--gbc-muted); line-height: 1.6; }

.missions-directory { background: var(--gbc-plaster-2); }
.missions-directory__head { border-bottom: 2px solid var(--gbc-oxblood); display: grid; gap: var(--gbc-s-3); padding-bottom: var(--gbc-s-5); }
.missions-directory__head > p { color: var(--gbc-muted); line-height: 1.7; max-width: 40rem; }

.missions-gospel { align-items: start; background: var(--gbc-oxblood); color: var(--gbc-cream); display: grid; gap: var(--gbc-s-4); max-width: 100%; padding: var(--gbc-sec-pad) max(var(--gbc-gutter), calc((100vw - 1240px) / 2)); }
.missions-gospel .missions-label { color: var(--gbc-brass-soft); }
.missions-gospel p:not(.missions-label) { color: var(--gbc-cream-78); line-height: 1.7; max-width: 38rem; }
.missions-gospel .missions-gospel__link { align-items: center; background: transparent; border: 1px solid var(--gbc-cream-line); border-radius: 0; color: var(--gbc-cream); display: inline-flex; font-family: var(--gbc-font-ui); font-size: var(--gbc-text-sm); font-weight: 700; gap: var(--gbc-s-2); justify-content: center; min-height: 52px; padding: var(--gbc-s-2) var(--gbc-s-3); text-decoration: none; }
.missions-gospel .missions-gospel__link:is(:hover, :focus-visible) { border-color: var(--gbc-brass-soft); color: var(--gbc-cream); }
.missions-page :is(h1, h2, h3) { text-wrap: balance; }
.missions-page :is(.missions-hero__copy > p, .missions-local__lede, .missions-prayer__statement > p, .missions-directory__head > p, .missions-gospel p) { text-wrap: pretty; }

@media screen and (min-width: 720px) {
  .missions-local { display: grid; gap: var(--gbc-s-6); grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .missions-section-heading, .missions-local__body { margin-inline: 0; max-width: none; }
  .missions-prayer { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); }
  .missions-directory__head { align-items: end; grid-template-columns: minmax(0, 1.2fr) minmax(18rem, .8fr); }
  .missions-gospel { align-items: center; grid-template-columns: .4fr 1.25fr auto; }
}

@media screen and (min-width: 1030px) {
  .missions-hero { min-height: var(--gbc-page-hero-desktop-min-h); display: grid; grid-template-columns: var(--gbc-page-hero-columns); }
  .missions-hero__copy { width: auto; max-width: var(--gbc-page-hero-copy-max); margin: 0; padding: var(--gbc-page-hero-copy-pad-desktop) var(--gbc-page-hero-copy-gutter-desktop); align-self: center; }
  .missions-hero__map { align-self: center; grid-template-rows: auto auto; }
  .missions-hero__map img { height: auto; object-fit: contain; }
  .missions-local { padding-inline: max(var(--gbc-gutter), calc((100vw - 1240px) / 2)); }
}

@media (prefers-reduced-motion: reduce) {
  .missions-page *, .missions-page *::before, .missions-page *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

html:has(.missions-page) { scroll-behavior: auto !important; }

/* Headings sat directly on their paragraph: the page reset zeroes both margins (2026-09-19 QA). */
.missions-page .missions-prayer__statement h2 + p,
.missions-page .missions-gospel h2 + p { margin-top: var(--gbc-s-2); }

/* ============================================================================
   2026-10 redesign (theme 0.11.14): weekly highlight, region chips, uniform cards.
   Ported from design/missions-redesign-2026-10/mockup.css (the approved visual
   contract). Tokens only; mobile-first min-width queries; 8px grid; motion is
   transform/opacity only and honours prefers-reduced-motion.
   ============================================================================ */
.missions-page ::selection { background: var(--gbc-brass-soft); color: var(--gbc-ink); }
.prayer-week ::selection { background: var(--gbc-brass-soft); color: var(--gbc-oxblood-deep); }

/* ---------------------------------------------------------------------------
   Shared: contact links (Website / email). 44px tap rows, long emails wrap.
   ------------------------------------------------------------------------ */
.missions-page .contact-links {
  border-top: 1px solid var(--gbc-line-soft);
  display: grid;
  gap: 0;
  list-style: none;
  margin: auto 0 0;
  padding: var(--gbc-s-1) 0 0;
}
.missions-page .contact-links a {
  align-items: center;
  color: var(--gbc-oxblood);
  display: inline-flex;
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 600;
  gap: 12px;
  min-height: 44px;
  text-decoration: underline;
  text-decoration-color: var(--gbc-brass);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  transition: color var(--gbc-dur-fast) var(--gbc-ease-out), text-decoration-color var(--gbc-dur-fast) var(--gbc-ease-out);
}
.missions-page .contact-links a:hover { color: var(--gbc-oxblood-2); text-decoration-color: var(--gbc-oxblood-2); }
.missions-page .contact-links a:focus-visible { outline: 2px solid var(--gbc-oxblood); outline-offset: 2px; }
.missions-page .contact-links__email { overflow-wrap: anywhere; }
.missions-page .contact-links__icon {
  fill: none;
  flex: none;
  height: 18px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.4;
  width: 18px;
}

/* ---------------------------------------------------------------------------
   1. This week we pray for — the weekly highlight band.
   ------------------------------------------------------------------------ */
.prayer-week {
  background: var(--gbc-oxblood-deep);
  color: var(--gbc-cream);
  padding: var(--gbc-sec-pad) var(--gbc-gutter);
}
.prayer-week__inner { margin-inline: auto; max-width: 1240px; }

.prayer-week__head {
  align-items: center;
  border-bottom: 1px solid var(--gbc-cream-line);
  display: grid;
  gap: var(--gbc-s-3);
  justify-items: start;
  padding-bottom: var(--gbc-s-5);
}

/* The letter: an initial set in a double brass rule, like the framed board in the hero photo. */
.missions-page .prayer-week__letter {
  border: 1px solid var(--gbc-brass-45);
  display: grid;
  height: 104px;
  margin: 0;
  padding: var(--gbc-s-1);
  width: 104px;
}
.prayer-week__glyph {
  border: 1px solid var(--gbc-brass);
  color: var(--gbc-brass-soft);
  display: grid;
  font-family: var(--gbc-font-display);
  font-size: 4.25rem;
  font-style: italic;
  font-weight: 600;
  line-height: 1;
  padding-bottom: var(--gbc-s-1);
  place-items: center;
}

.missions-page .prayer-week__titles h2 {
  color: var(--gbc-cream);
  font-size: clamp(2.5rem, 1.55rem + 3.9vw, 4.75rem);
  font-weight: 500;
  letter-spacing: -.02em;
  line-height: 1.02;
  margin: 0;
  text-wrap: balance;
}
/* "pray for" carries the band: italic, in the same brass as the letter. */
.missions-page .prayer-week__titles h2 em { color: var(--gbc-brass-soft); font-style: italic; }
.missions-page .prayer-week__dates {
  color: var(--gbc-brass-soft);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 600;
  letter-spacing: .04em;
  margin: var(--gbc-s-2) 0 0;
}

.prayer-week__rotation { grid-column: 1 / -1; }
.missions-page .prayer-week__rotation p {
  color: var(--gbc-cream-78);
  font-size: var(--gbc-text-readable);
  line-height: 1.65;
  margin: 0;
  max-width: 24rem;
}
.missions-page .prayer-week__rotation .prayer-week__next {
  align-items: center;
  color: var(--gbc-cream);
  display: flex;
  gap: var(--gbc-s-2);
  margin-top: var(--gbc-s-3);
}
.prayer-week__next-letter {
  border: 1px solid var(--gbc-brass-45);
  border-radius: var(--gbc-r-pill);
  color: var(--gbc-brass-soft);
  display: inline-grid;
  flex: none;
  font-family: var(--gbc-font-display);
  font-size: 1.5rem;
  font-style: italic;
  height: 48px;
  padding-bottom: 4px;
  place-items: center;
  width: 48px;
}
.prayer-week__next-text { display: grid; gap: 2px; }
.prayer-week__next-label {
  color: var(--gbc-cream);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 600;
}
.prayer-week__next-dates {
  color: var(--gbc-brass-soft);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-xs);
  font-weight: 600;
  letter-spacing: .04em;
}

.prayer-week__cards {
  display: grid;
  gap: var(--gbc-s-4);
  margin-top: var(--gbc-s-5);
}

/* Feature card: hairline shell (outer) holding a brass-matted photograph (inner). */
.feature-card {
  background: var(--gbc-cream-08);
  border: 1px solid var(--gbc-cream-line);
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: var(--gbc-s-1);
}
.feature-card__frame {
  border: 1px solid var(--gbc-brass-45);
  margin: 0;
  padding: var(--gbc-s-1);
}
.missions-page .feature-card__frame img {
  aspect-ratio: 4 / 3;
  display: block;
  height: auto;
  object-fit: cover;
  object-position: var(--focus, 50% 30%);
  width: 100%;
}
.feature-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: var(--gbc-s-3) var(--gbc-s-2) 0;
}
.missions-page .feature-card__body h3 {
  color: var(--gbc-cream);
  font-size: clamp(1.75rem, 1.35rem + 1.3vw, 2.375rem);
  font-weight: 500;
  letter-spacing: -.01em;
  line-height: 1.1;
  margin: 0;
}
.missions-page .feature-card__field {
  color: var(--gbc-brass-soft);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 600;
  letter-spacing: .02em;
  margin: var(--gbc-s-1) 0 0;
}
.missions-page .feature-card__bio {
  color: var(--gbc-cream-94);
  font-size: var(--gbc-text-base);
  line-height: 1.75;
  margin: var(--gbc-s-2) 0 var(--gbc-s-3);
  max-width: 38rem;
  text-wrap: pretty;
}
.missions-page .prayer-week .contact-links { border-top-color: var(--gbc-cream-line); }
.missions-page .prayer-week .contact-links a { color: var(--gbc-cream); text-decoration-color: var(--gbc-brass); }
.missions-page .prayer-week .contact-links a:hover { color: var(--gbc-brass-soft); text-decoration-color: var(--gbc-brass-soft); }
.missions-page .prayer-week .contact-links a:focus-visible { outline-color: var(--gbc-brass-soft); }

/* ---------------------------------------------------------------------------
   2. Region chips — replace the plain jump links; each carries its count.
   ------------------------------------------------------------------------ */
.region-chips {
  border-bottom: 1px solid var(--gbc-line);
  margin: var(--gbc-s-4) auto 0;
  max-width: 1240px;
  padding-bottom: var(--gbc-s-4);
}
.missions-page .region-chips__label {
  color: var(--gbc-muted);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 600;
  margin: 0 0 var(--gbc-s-2);
}
.region-chips ul {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gbc-s-1);
  list-style: none;
  margin: 0;
  padding: 0;
}
.region-chips a {
  align-items: center;
  background: var(--gbc-cream);
  border: 1px solid var(--gbc-contact-line-strong);
  border-radius: var(--gbc-r-pill);
  color: var(--gbc-oxblood);
  display: inline-flex;
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 600;
  gap: 12px;
  min-height: 48px;
  padding: var(--gbc-s-05) 6px var(--gbc-s-05) var(--gbc-s-2);
  text-decoration: none;
  transition: background-color var(--gbc-dur-fast) var(--gbc-ease-out), color var(--gbc-dur-fast) var(--gbc-ease-out), border-color var(--gbc-dur-fast) var(--gbc-ease-out);
}
.region-chips__count {
  background: var(--gbc-oxblood);
  border-radius: var(--gbc-r-pill);
  color: var(--gbc-cream);
  display: inline-grid;
  font-size: var(--gbc-text-xs);
  font-weight: 700;
  height: 36px;
  min-width: 36px;
  font-variant-numeric: tabular-nums;
  padding-inline: var(--gbc-s-1);
  place-items: center;
  transition: background-color var(--gbc-dur-fast) var(--gbc-ease-out), color var(--gbc-dur-fast) var(--gbc-ease-out);
}
.region-chips a:hover { background: var(--gbc-oxblood); border-color: var(--gbc-oxblood); color: var(--gbc-cream); }
.region-chips a:hover .region-chips__count { background: var(--gbc-brass-soft); color: var(--gbc-oxblood-deep); }
.region-chips a:focus-visible { outline: 2px solid var(--gbc-oxblood); outline-offset: 3px; }

/* ---------------------------------------------------------------------------
   3. Region groups — heading + locator map, then the card grid.
   ------------------------------------------------------------------------ */
.mission-group {
  border-bottom: 1px solid var(--gbc-line);
  margin-inline: auto;
  max-width: 1240px;
  padding-block: var(--gbc-s-6);
}
.mission-group:last-child { border-bottom: 0; }
.mission-group__head { display: grid; gap: var(--gbc-s-3); margin-bottom: var(--gbc-s-4); }
.missions-page .mission-group__titles h3 {
  align-items: baseline;
  display: flex;
  font-size: clamp(2.125rem, 1.5rem + 2.4vw, 3.375rem);
  font-weight: 500;
  gap: var(--gbc-s-2);
  letter-spacing: -.015em;
  line-height: 1.05;
  margin: 0;
  scroll-margin-top: 120px;
}
.mission-group__rule {
  background: var(--gbc-brass);
  display: block;
  height: 2px;
  margin-top: var(--gbc-s-2);
  transform-origin: left center;
  width: var(--gbc-s-8);
}
.mission-group__num {
  color: var(--gbc-oxblood);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  letter-spacing: .12em;
}
.missions-page .mission-group__fields {
  color: var(--gbc-oxblood);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 600;
  line-height: 1.6;
  margin: var(--gbc-s-2) 0 0;
}
.mission-group__map { margin: 0; max-width: 14rem; }
.mission-group__map img { aspect-ratio: 16 / 9; display: block; height: auto; object-fit: contain; object-position: left center; width: 100%; }

.mission-group__grid { display: grid; gap: var(--gbc-s-3); }

/* Card: cream shell with an 8px mat around a fixed 4:3 frame (photos and placeholders alike). Elevation is one
   diffused oxblood-tinted shadow (no border), deepened on hover in the delight block. */
.mission-card {
  background: var(--gbc-cream);
  box-shadow: var(--gbc-shadow-sm);
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: var(--gbc-s-1);
}
.mission-card__frame {
  aspect-ratio: 4 / 3;
  background: var(--gbc-plaster-2);
  border-bottom: 3px solid var(--gbc-brass);
  box-sizing: content-box; /* the brass rule sits below the 4:3 window, never inside it */
  margin: 0;
  overflow: hidden;
  position: relative;
}
.missions-page .mission-card__frame img {
  display: block;
  height: 100%;
  inset: 0;
  max-width: none;
  object-fit: cover;
  object-position: var(--focus, 50% 30%);
  position: absolute;
  width: 100%;
}
/* One treatment for every photo: cover-fill the 4:3 frame, aimed by the per-photo --focus
   value (photo-focus.json, the 'focus' key in missions-photos.php). No contain cases. */

/* Placeholders: deep oxblood plate, inner brass rule, thin line art — the same
   framed language as the photos, so a missing photo reads as deliberate. */
.mission-card__frame--placeholder {
  align-items: center;
  background: var(--gbc-oxblood-deep);
  color: var(--gbc-brass-soft);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.mission-card__frame--placeholder::after {
  border: 1px solid var(--gbc-brass-45);
  content: "";
  inset: 12px;
  pointer-events: none;
  position: absolute;
}
.mission-card__frame--placeholder svg {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
  width: 44%;
}
.missions-page .mission-card__frame-caption {
  color: var(--gbc-cream-78);
  font-family: var(--gbc-font-display);
  font-size: var(--gbc-text-md);
  font-style: italic;
  line-height: 1.4;
  margin: var(--gbc-s-1) 0 0;
  padding-inline: var(--gbc-s-4);
  text-align: center;
}

.mission-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: var(--gbc-s-3) var(--gbc-s-2) 0;
}
.missions-page .mission-card__body h4 {
  color: var(--gbc-ink);
  font-size: var(--gbc-text-h4);
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1.2;
  margin: 0;
  text-wrap: balance;
}
.missions-page .mission-card__field {
  color: var(--gbc-oxblood);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 600;
  letter-spacing: .02em;
  line-height: 1.5;
  margin: var(--gbc-s-1) 0 0;
}
.missions-page .mission-card__ministry {
  border-left: 1px solid var(--gbc-brass);
  color: var(--gbc-ink);
  font-size: var(--gbc-text-sm);
  line-height: 1.55;
  margin: 12px 0 0;
  padding: 2px 0 2px 12px;
}
.missions-page .mission-card__bio {
  color: var(--gbc-ink);
  font-size: var(--gbc-text-readable);
  line-height: 1.7;
  margin: var(--gbc-s-2) 0 var(--gbc-s-3);
  text-wrap: pretty;
}
/* Read more: JS adds .is-clamped only when the bio overflows four lines; no JS = full text. */
.missions-page .mission-card__bio.is-clamped {
  -webkit-box-orient: vertical;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  overflow: hidden;
}
.missions-page .mission-card.has-more .mission-card__bio { margin-bottom: var(--gbc-s-1); }
.mission-card__more {
  align-items: center;
  align-self: flex-start;
  background: none;
  border: 0;
  color: var(--gbc-oxblood);
  cursor: pointer;
  display: inline-flex;
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 600;
  gap: var(--gbc-s-1);
  margin: 0 0 var(--gbc-s-3) calc(var(--gbc-s-1) * -1);
  min-height: 44px;
  padding: 0 var(--gbc-s-1);
  text-decoration: underline;
  text-decoration-color: var(--gbc-brass);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.mission-card__more[hidden] { display: none; }
.mission-card__more:hover { color: var(--gbc-oxblood-2); text-decoration-color: var(--gbc-oxblood-2); }
.mission-card__more:focus-visible { outline: 2px solid var(--gbc-oxblood); outline-offset: 2px; }
.mission-card__more-icon {
  fill: none;
  height: 16px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
  transition: transform var(--gbc-dur-mid) var(--gbc-ease-out);
  width: 16px;
}
.mission-card__more[aria-expanded="true"] .mission-card__more-icon { transform: rotate(180deg); }

/* Prayer line (no researched bio yet): set apart in italic so it is never mistaken for a bio. */
.missions-page .mission-card__bio--prayer { color: var(--gbc-muted); font-style: italic; }

/* ---------------------------------------------------------------------------
   Breakpoints
   ------------------------------------------------------------------------ */
@media screen and (min-width: 720px) {
  .prayer-week__head { align-items: center; gap: var(--gbc-s-4); grid-template-columns: auto minmax(0, 1fr); }
  .missions-page .prayer-week__letter { height: 144px; width: 144px; }
  .prayer-week__glyph { font-size: 6rem; }
  .feature-card { padding: var(--gbc-s-3); }
  .feature-card__body { padding-inline: 0; }
  /* Tablet: the two highlight cards sit side by side, matching the 2-up directory grid
     (one full-width card made a ~900px photo that pushed the second family off-screen). */
  .prayer-week__cards { gap: var(--gbc-s-4); grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mission-group { padding-block: var(--gbc-s-10); }
  .mission-card__body { padding: var(--gbc-s-4) var(--gbc-s-3) 0; }
  .mission-group__head { align-items: center; grid-template-columns: minmax(0, 1fr) minmax(0, 16rem); margin-bottom: var(--gbc-s-6); }
  .mission-group__map { justify-self: end; max-width: none; width: 100%; }
  .mission-group__map img { object-position: right center; }
  .mission-group__grid { gap: var(--gbc-s-5) var(--gbc-s-4); grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media screen and (min-width: 1030px) {
  .prayer-week__head { align-items: center; grid-template-columns: auto minmax(0, 1fr) minmax(16rem, 20rem); }
  .missions-page .prayer-week__letter { height: 176px; width: 176px; }
  .prayer-week__glyph { font-size: 7.5rem; }
  .prayer-week__rotation { grid-column: auto; padding-bottom: 4px; }
  .prayer-week__cards { gap: var(--gbc-s-6); grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: var(--gbc-s-6); }
  .mission-group__head { grid-template-columns: minmax(0, 1fr) minmax(0, 18rem); }
  .mission-group { padding-block: var(--gbc-s-12); }
  .mission-group__grid { gap: var(--gbc-s-6) var(--gbc-s-4); grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------------------------------------------------------------------------
   Delight — quiet, purposeful motion. Transform and opacity only.
   ------------------------------------------------------------------------ */
/* Brass rule under each region heading draws in once (gbc-missions.js adds .is-pending
   only to rules below the fold, then .is-drawn on entry). Visible by default. */
.mission-group__rule.is-pending { transform: scaleX(0); }
.mission-group__rule.is-drawn { transform: scaleX(1); transition: transform var(--gbc-dur-reveal) var(--gbc-ease-drift) 120ms; }

/* Card lift: a hairline rise with a deeper shadow faded in on a pseudo-element,
   so only transform and opacity animate. Pointer devices with hover only. */
@media (hover: hover) and (pointer: fine) {
  .mission-card { position: relative; transition: transform var(--gbc-dur-mid) var(--gbc-ease-out); }
  .mission-card::after {
    box-shadow: var(--gbc-shadow-lift);
    content: "";
    inset: 0;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    transition: opacity var(--gbc-dur-mid) var(--gbc-ease-out);
    z-index: -1;
  }
  .mission-card:hover { transform: translateY(calc(var(--gbc-s-05) * -1)); }
  .mission-card:hover::after { opacity: 1; }
  .missions-page .mission-card__frame img { transition: transform var(--gbc-dur-reveal) var(--gbc-ease-out); }
  .missions-page .mission-card:hover .mission-card__frame img { transform: scale(1.025); }
}

@media (prefers-reduced-motion: reduce) {
  .region-chips a, .region-chips__count, .missions-page .contact-links a,
  .mission-card, .mission-card::after, .missions-page .mission-card__frame img,
  .mission-card__more-icon, .mission-group__rule.is-drawn { transition: none; }
  .mission-card:hover, .missions-page .mission-card:hover .mission-card__frame img { transform: none; }
  .mission-group__rule.is-pending { transform: none; }
}

/* ---------------------------------------------------------------------------
   4. Region filter + Back to regions (Tito 2026-10-07, added after the mockup).
   assets/js/gbc-missions.js turns the chips into a single-select filter
   (aria-pressed) and hides other regions with the hidden attribute.
   ------------------------------------------------------------------------ */
.region-chips { scroll-margin-top: 120px; }
.region-chips:focus { outline: none; }
.region-chips:focus-visible { outline: 2px solid var(--gbc-oxblood); outline-offset: 8px; }
.region-chips a[aria-pressed="true"] { background: var(--gbc-oxblood); border-color: var(--gbc-oxblood); color: var(--gbc-cream); }
.region-chips a[aria-pressed="true"] .region-chips__count { background: var(--gbc-brass-soft); color: var(--gbc-oxblood-deep); }
.mission-group[hidden] { display: none; }

/* Back to regions: phones and tablets only; at desktop the chips stay close. */
.mission-back {
  align-items: center;
  color: var(--gbc-oxblood);
  display: inline-flex;
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 600;
  gap: var(--gbc-s-1);
  margin-top: var(--gbc-s-4);
  min-height: 44px;
  text-decoration: underline;
  text-decoration-color: var(--gbc-brass);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.mission-back:hover { color: var(--gbc-oxblood-2); text-decoration-color: var(--gbc-oxblood-2); }
.mission-back:focus-visible { outline: 2px solid var(--gbc-oxblood); outline-offset: 2px; }

@media screen and (min-width: 1024px) {
  .mission-back { display: none; }
}
/* ==== 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); }
}
