/* 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-events.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;
  }
  .mnav-visit {
    min-height: 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    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-xs);
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
  }
  .mnav-visit > span:last-child { font-size: var(--gbc-text-h4); }
  .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; }
}

@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) {
  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) .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) p { margin: 0 0 1em; max-width: 68ch; }
/* 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) .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) 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) 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) 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; }
}
/* ==== source: assets/css/gbc-events.css ==== */
.events-mock {
  background: var(--gbc-plaster);
  color: var(--gbc-ink);
  font-family: var(--gbc-font-body);
}

.events-mock .site-content {
  padding-top: var(--gbc-chrome-h);
}

.events-mock .site-header-inner {
  max-width: 1240px;
  position: relative;
  width: calc(100% - 48px);
}

.events-page {
  max-width: 100%;
  width: 100%;
}

.events-mock {
  overflow-x: hidden;
}

.events-mock .nav-toggle {
  cursor: pointer;
  display: grid;
  padding: 0;
  place-items: center;
  position: relative;
  z-index: 110;
}

.events-mock .menu-items {
  list-style: none;
  margin: 0;
  padding-left: 0;
}

@media screen and (max-width: 1029.98px) {
  .events-mock .nav-toggle {
    display: grid !important;
    position: absolute;
    right: 0;
    top: 14px;
    visibility: visible !important;
  }

  .events-mock:not(.js-nav-active) .menu-items-wrapper {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
  }


  .events-hero__inner {
    max-width: calc(100vw - 48px);
    width: calc(100vw - 48px);
  }
}

.events-mock h1,
.events-mock h2,
.events-mock h3,
.events-mock p {
  margin-top: 0;
}

.events-mock h1,
.events-mock h2,
.events-mock h3 {
  color: inherit;
  font-family: var(--gbc-font-display);
}

.events-mock a:focus-visible,
.events-mock button:focus-visible {
  outline: var(--gbc-focus-ring);
  outline-offset: 4px;
}

.events-mock .site-header a:focus-visible,
.events-mock .site-header button:focus-visible,
.events-recurring a:focus-visible,
.events-calendar a:focus-visible,
.events-calendar button:focus-visible {
  outline: 3px solid var(--gbc-oxblood);
}

.events-calendar .event-row:focus-visible {
  outline-offset: -3px;
}

.events-mock .screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.events-mock .skip-link:focus {
  align-items: center;
  clip: auto;
  clip-path: none;
  display: flex;
  height: auto;
  min-height: 44px;
  overflow: visible;
  width: auto;
}

.events-hero {
  background: var(--gbc-oxblood-deep);
  color: var(--gbc-cream);
  min-height: min(720px, calc(100svh - var(--gbc-chrome-h)));
  padding: clamp(72px, 13vw, 152px) var(--gbc-gutter) var(--gbc-s-10);
}

.events-hero__inner {
  display: grid;
  gap: var(--gbc-s-8);
  margin-inline: auto;
  max-width: 1240px;
  min-width: 0;
  width: 100%;
}

.events-hero__inner > * {
  min-width: 0;
}

.events-hero h1 {
  font-size: clamp(3rem, 14vw, 5.9rem);
  letter-spacing: -.035em;
  line-height: .98;
  margin-bottom: var(--gbc-s-4);
}

.events-hero h1 em,
.events-heading h2 em {
  color: var(--gbc-brass-soft);
  font-weight: 500;
}

.events-hero__inner > div:first-child > p {
  color: var(--gbc-cream-78);
  font-size: var(--gbc-text-lede);
  line-height: 1.7;
  max-width: 37rem;
  overflow-wrap: anywhere;
}

.events-next {
  align-self: end;
  border-block: 1px solid var(--gbc-cream-line);
  padding-block: var(--gbc-s-3);
}

.events-next > p {
  color: var(--gbc-brass-soft);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-xs);
  font-weight: 700;
  letter-spacing: .12em;
  margin-bottom: var(--gbc-s-2);
  text-transform: uppercase;
}

.events-next__link {
  align-items: center;
  color: var(--gbc-cream);
  display: grid;
  gap: var(--gbc-s-2);
  grid-template-columns: auto 1fr auto;
  min-height: 72px;
  text-decoration: none;
}

.events-next__date {
  color: var(--gbc-brass-soft);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
  text-transform: uppercase;
  width: 56px;
}

.events-next__date strong {
  display: block;
  font-family: var(--gbc-font-display);
  font-size: 2rem;
  line-height: 1;
}

.events-next__copy strong {
  display: block;
  font-family: var(--gbc-font-display);
  font-size: clamp(1.35rem, 4vw, 1.8rem);
  font-weight: 500;
}

.events-next__copy span {
  color: var(--gbc-cream-78);
  font-size: var(--gbc-text-sm);
}

.events-next__arrow {
  font-size: 1.5rem;
}

.events-recurring,
.events-calendar {
  padding: var(--gbc-sec-pad) var(--gbc-gutter);
}

.events-recurring {
  background: var(--gbc-plaster-2);
}

.events-heading,
.events-calendar__head,
.recurring-list,
.event-groups {
  margin-inline: auto;
  max-width: 1240px;
}

.events-heading {
  display: grid;
  gap: var(--gbc-s-3);
  margin-bottom: var(--gbc-s-6);
}

.events-heading h2,
.events-calendar h2,
.events-visit h2 {
  font-size: var(--gbc-text-h2);
  line-height: 1.05;
}

.events-heading p,
.events-calendar__head p,
.events-visit p {
  color: var(--gbc-muted);
  font-size: var(--gbc-text-base);
  line-height: 1.7;
  max-width: 42rem;
}

.recurring-list {
  border-top: 2px solid var(--gbc-oxblood);
}

.recurring-item {
  align-items: center;
  border-bottom: 1px solid var(--gbc-line);
  color: var(--gbc-ink);
  display: grid;
  gap: var(--gbc-s-2);
  min-height: 112px;
  padding-block: var(--gbc-s-3);
  text-decoration: none;
}

.recurring-item__day {
  color: var(--gbc-oxblood);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 700;
}

.recurring-item__title {
  font-family: var(--gbc-font-display);
  font-size: var(--gbc-text-h3);
  font-weight: 500;
}

.recurring-item__time {
  color: var(--gbc-muted);
}

.recurring-item__arrow {
  color: var(--gbc-oxblood);
  font-size: 1.5rem;
}

.events-calendar__head {
  display: grid;
  gap: var(--gbc-s-4);
  margin-bottom: var(--gbc-s-6);
}

.month-filter {
  align-items: center;
  align-self: end;
  display: flex;
  gap: var(--gbc-s-05);
  max-width: 100%;
  min-height: 58px;
  overflow-x: auto;
  padding: var(--gbc-s-05);
}

.month-filter__button,
.event-empty button {
  background: transparent;
  border: 1px solid var(--gbc-contact-line-strong);
  border-radius: var(--gbc-r-pill);
  color: var(--gbc-oxblood);
  cursor: pointer;
  flex: 0 0 auto;
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 700;
  min-height: 48px;
  padding: var(--gbc-s-1) clamp(10px, 2.5vw, var(--gbc-s-2));
}

.month-filter__button.is-active,
.month-filter__button:hover,
.event-empty button:hover {
  background: var(--gbc-oxblood);
  color: var(--gbc-cream);
}

.event-month {
  display: grid;
  gap: var(--gbc-s-3);
  grid-template-columns: 1fr;
  padding-block: var(--gbc-s-5);
}

.event-month + .event-month {
  border-top: 1px solid var(--gbc-line);
}

.event-month[hidden] {
  display: none;
}

.event-month__name {
  color: var(--gbc-oxblood);
  font-size: var(--gbc-text-h3);
  font-style: italic;
  font-weight: 500;
}

.event-list {
  border-top: 2px solid var(--gbc-ink);
}

.event-row {
  align-items: center;
  border-bottom: 1px solid var(--gbc-line);
  color: var(--gbc-ink);
  display: grid;
  gap: var(--gbc-s-2);
  grid-template-columns: 72px 1fr auto;
  min-height: 104px;
  padding-block: var(--gbc-s-2);
  text-decoration: none;
}

.event-row--notice {
  background: var(--gbc-contact-oxblood-a08);
  padding-inline: var(--gbc-s-2);
}

.event-row__notice-label {
  color: var(--gbc-oxblood);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-xs);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.event-row__date {
  color: var(--gbc-oxblood);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-2xs);
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-transform: uppercase;
}

.event-row__date strong {
  display: block;
  font-family: var(--gbc-font-display);
  font-size: 1.9rem;
  font-weight: 500;
  line-height: 1;
}

.event-row__title {
  display: block;
  font-family: var(--gbc-font-display);
  font-size: clamp(1.25rem, 4vw, 1.7rem);
  font-weight: 500;
  line-height: 1.2;
}

.event-row__meta {
  color: var(--gbc-muted);
  display: block;
  font-size: var(--gbc-text-sm);
  line-height: 1.5;
  margin-top: var(--gbc-s-05);
}

.event-row__arrow {
  color: var(--gbc-oxblood);
  font-size: 1.4rem;
}

.event-empty {
  border-block: 1px solid var(--gbc-line);
  margin-inline: auto;
  max-width: 1240px;
  padding-block: var(--gbc-s-6);
  text-align: center;
}

.events-visit {
  align-items: center;
  background: var(--gbc-oxblood);
  color: var(--gbc-cream);
  display: grid;
  gap: var(--gbc-s-4);
  padding: var(--gbc-s-8) var(--gbc-gutter);
}

.events-visit p {
  color: var(--gbc-cream-78);
}

.events-visit > a {
  align-items: center;
  border: 1px solid var(--gbc-brass-soft);
  color: var(--gbc-cream);
  display: inline-flex;
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 700;
  justify-content: space-between;
  min-height: 52px;
  padding: var(--gbc-s-2) var(--gbc-s-3);
  text-decoration: none;
}

.event-detail {
  padding-top: calc(var(--gbc-s-8) + var(--gbc-chrome-h));
}

/* Keep the event content contained, but let its closing invitation span the page. */
.event-detail__content {
  margin-inline: auto;
  max-width: 1240px;
  padding-inline: var(--gbc-gutter);
}

.event-back {
  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-1);
  min-height: 44px;
  text-decoration: none;
}

.event-back--header {
  align-items: center;
}

.event-detail__article {
  display: grid;
  gap: var(--gbc-s-6);
  margin-block: var(--gbc-s-5) var(--gbc-s-10);
}

.event-detail__date {
  color: var(--gbc-oxblood);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.event-detail h1 {
  font-size: clamp(3rem, 12vw, 5.9rem);
  line-height: .98;
  max-width: 12ch;
}

.event-detail__facts {
  border-top: 2px solid var(--gbc-oxblood);
  margin: 0;
}

.event-detail__facts div {
  border-bottom: 1px solid var(--gbc-line);
  display: grid;
  gap: var(--gbc-s-1);
  padding-block: var(--gbc-s-3);
}

.event-detail__facts dt {
  color: var(--gbc-muted);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-xs);
  font-weight: 700;
  text-transform: uppercase;
}

.event-detail__facts dd {
  font-family: var(--gbc-font-display);
  font-size: var(--gbc-text-h4);
  margin: 0;
}

.event-detail__note {
  color: var(--gbc-muted);
  font-size: var(--gbc-text-base);
  line-height: 1.7;
  max-width: 65ch;
}

.site-footer__inner > div:last-child a {
  align-items: center;
  display: flex;
  margin-bottom: var(--gbc-s-1);
  min-height: 44px;
}

.events-mock .site-footer a[href^="tel:"] {
  align-items: center;
  display: flex;
  min-height: 44px;
}

@media (min-width: 720px) {
  .events-heading,
  .events-calendar__head,
  .events-visit,
  .event-detail__article {
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  }

  .recurring-item {
    grid-template-columns: minmax(180px, .7fr) minmax(0, 1.4fr) minmax(130px, .5fr) auto;
  }

  .event-month {
    grid-template-columns: minmax(0, 1fr);
  }

  .event-detail__facts div {
    grid-template-columns: minmax(120px, .4fr) minmax(0, 1.6fr);
  }
}

@media (min-width: 960px) {
  .events-hero__inner {
    grid-template-columns: minmax(0, 1.1fr) minmax(390px, .9fr);
  }

  .events-calendar__head {
    align-items: end;
  }

  .month-filter {
    justify-content: flex-end;
  }

  .events-visit {
    grid-template-columns: 1fr auto;
  }

  .events-visit > a {
    min-width: 240px;
  }
}

@media (min-width: 1030px) {
  .events-mock .nav-toggle {
    display: none !important;
  }

  .events-mock .menu-items-wrapper {
    margin-inline: auto;
    opacity: 1;
    pointer-events: auto;
    position: static;
    transform: none;
    visibility: visible;
  }

  .events-mock .menu-items {
    align-items: center;
    display: flex;
  }

  .events-mock .menu-item > a {
    align-items: center;
    display: flex;
  }
}

/* River Almanac visual direction. */
.events-kicker,
.events-section-label {
  color: var(--gbc-oxblood);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-xs);
  font-weight: 700;
  letter-spacing: .14em;
  margin-bottom: var(--gbc-s-2);
  text-transform: uppercase;
}

.events-kicker {
  align-items: center;
  color: var(--gbc-brass-soft);
  display: flex;
  gap: var(--gbc-s-2);
}

.events-kicker span {
  align-items: center;
  border: 1px solid var(--gbc-brass-45);
  border-radius: var(--gbc-r-pill);
  display: inline-flex;
  justify-content: center;
  min-height: 36px;
  min-width: 72px;
  padding-inline: var(--gbc-s-2);
}

.events-hero {
  background:
    linear-gradient(125deg, var(--gbc-home-deep-a96), var(--gbc-oxblood-deep-a88)),
    var(--gbc-oxblood-deep);
  isolation: isolate;
  overflow: hidden;
  position: relative;
}

.events-hero::before {
  background-image: var(--gbc-grain-img);
  content: "";
  inset: 0;
  opacity: var(--gbc-grain-a);
  pointer-events: none;
  position: absolute;
  z-index: -1;
}

.events-hero__copy {
  position: relative;
}

.events-hero__copy::after {
  background: var(--gbc-brass-soft);
  content: "";
  display: block;
  height: 2px;
  margin-top: var(--gbc-s-4);
  opacity: .65;
  width: 80px;
}

.events-next {
  background: var(--gbc-cream-08);
  border: 1px solid var(--gbc-cream-line);
  border-radius: var(--gbc-r);
  box-shadow: var(--gbc-home-shadow-sm);
  padding: var(--gbc-s-3);
}

.events-next__date {
  border-right: 1px solid var(--gbc-cream-line);
  padding-right: var(--gbc-s-2);
  width: 72px;
}

.events-next__link:hover .events-next__copy strong,
.events-next__link:focus-visible .events-next__copy strong {
  color: var(--gbc-brass-soft);
}

.events-recurring,
.events-calendar {
  isolation: isolate;
  overflow: hidden;
  position: relative;
}

.events-recurring {
  background:
    linear-gradient(180deg, var(--gbc-plaster-a76), var(--gbc-plaster-2)),
    var(--gbc-plaster-2);
}

.events-recurring::before {
  background-image: var(--gbc-grain-img);
  content: "";
  inset: 0;
  opacity: var(--gbc-grain-a);
  pointer-events: none;
  position: absolute;
  z-index: -2;
}

.events-heading {
  align-items: end;
  border-bottom: 1px solid var(--gbc-contact-line);
  padding-bottom: var(--gbc-s-5);
}

.events-heading p:last-child {
  margin-bottom: 0;
}

.recurring-list {
  border-top: 0;
  display: grid;
  gap: var(--gbc-s-2);
}

.recurring-item {
  background: var(--gbc-cream-94);
  border: 1px solid var(--gbc-contact-line);
  border-radius: var(--gbc-r);
  box-shadow: var(--gbc-contact-shadow-sm);
  min-height: 0;
  padding: var(--gbc-s-3);
  position: relative;
}

.recurring-item::before {
  background: var(--gbc-oxblood);
  border-radius: var(--gbc-r-pill);
  content: "";
  height: 8px;
  left: var(--gbc-s-3);
  position: absolute;
  top: 0;
  transform: translateY(-50%);
  width: 48px;
}

.recurring-item__day {
  letter-spacing: .06em;
  text-transform: uppercase;
}

.recurring-item__time {
  align-items: center;
  display: flex;
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-sm);
  font-weight: 600;
  min-height: 32px;
}

.recurring-item__arrow {
  align-items: center;
  border: 1px solid var(--gbc-contact-line-strong);
  border-radius: var(--gbc-r-pill);
  display: inline-flex;
  height: 40px;
  justify-content: center;
  justify-self: end;
  width: 40px;
}

.recurring-item:hover,
.recurring-item:focus-visible {
  border-color: var(--gbc-oxblood-a55);
  box-shadow: var(--gbc-shadow-lift);
}

.events-calendar {
  background: var(--gbc-plaster);
}

.events-calendar__head {
  border-bottom: 1px solid var(--gbc-line);
  padding-bottom: var(--gbc-s-5);
}

.month-filter {
  background: var(--gbc-ink-05);
  border: 1px solid var(--gbc-line-soft);
  border-radius: var(--gbc-r-pill);
  scrollbar-width: thin;
}

.month-filter__button,
.event-empty button {
  border-color: transparent;
}

.month-filter__button.is-active {
  box-shadow: var(--gbc-shadow-sm);
}

.event-groups {
  position: relative;
}

.event-month {
  position: relative;
}

.event-month__name {
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  padding-left: 0;
  position: relative;
}

.event-list {
  background: var(--gbc-cream-94);
  border: 1px solid var(--gbc-line);
  border-radius: var(--gbc-r);
  box-shadow: var(--gbc-shadow-sm);
  overflow: hidden;
}

.event-row {
  padding: var(--gbc-s-2);
}

.event-row:last-child {
  border-bottom: 0;
}

.event-row:not(.event-row--notice):hover,
.event-row:not(.event-row--notice):focus-visible {
  background: var(--gbc-contact-oxblood-a08);
}

.event-row__date {
  background: var(--gbc-plaster-2);
  border: 1px solid var(--gbc-contact-line);
  border-radius: var(--gbc-r-sm);
  padding: var(--gbc-s-1) var(--gbc-s-05);
}

.event-row--notice {
  background: var(--gbc-contact-oxblood-a08);
  border-left: 4px solid var(--gbc-oxblood);
}

.event-row__arrow {
  align-items: center;
  border: 1px solid var(--gbc-contact-line-strong);
  border-radius: var(--gbc-r-pill);
  display: flex;
  height: 40px;
  justify-content: center;
  width: 40px;
}

.events-visit {
  background:
    linear-gradient(90deg, var(--gbc-oxblood-deep-a95), var(--gbc-oxblood-a80)),
    url("../img/gbc-sanctuary-1080.webp") center 56% / cover no-repeat,
    var(--gbc-oxblood);
  border-block: 1px solid var(--gbc-brass-45);
  overflow: hidden;
  position: relative;
}

/* The sanctuary sits behind an 80–95% tint, so each width step only needs a photo
   as wide as the band. Longhand keeps the shorthand's position, size and repeat. */
@media (min-width: 720px) {
  .events-visit {
    background-image:
      linear-gradient(90deg, var(--gbc-oxblood-deep-a95), var(--gbc-oxblood-a80)),
      url("../img/gbc-sanctuary-1280.webp");
  }
}

@media (min-width: 1281px) {
  .events-visit {
    background-image:
      linear-gradient(90deg, var(--gbc-oxblood-deep-a95), var(--gbc-oxblood-a80)),
      url("../img/gbc-sanctuary-1920.webp");
  }
}

.events-visit .events-section-label {
  color: var(--gbc-brass-soft);
}

.events-visit > a {
  background: var(--gbc-cream-08);
  border-radius: var(--gbc-r-sm);
}

.events-visit > a:hover,
.events-visit > a:focus-visible {
  background: var(--gbc-cream);
  color: var(--gbc-oxblood);
}

@media (min-width: 720px) {
  .recurring-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .recurring-item {
    align-content: start;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto 1fr auto;
    min-height: 248px;
  }

  .recurring-item__day,
  .recurring-item__title,
  .recurring-item__time {
    grid-column: 1 / -1;
  }

  .recurring-item__arrow {
    bottom: var(--gbc-s-3);
    position: absolute;
    right: var(--gbc-s-3);
  }

  .event-month__name {
    padding-top: 0;
  }
}

@media (min-width: 960px) {
  .events-next {
    margin-bottom: var(--gbc-s-3);
  }

  .event-month {
    gap: var(--gbc-s-5);
  }
}

/* Image-backed event system: generated concepts remain scoped to this mock. */
.recurring-item--with-image {
  background: var(--gbc-oxblood-deep);
  border-color: var(--gbc-brass-45);
  color: var(--gbc-cream);
  isolation: isolate;
  overflow: hidden;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: 1fr auto auto;
  min-height: 280px;
  gap: var(--gbc-s-1);
}

.recurring-item--with-image .recurring-item__day {
  align-self: start;
}

.recurring-item--with-image .recurring-item__title,
.recurring-item--with-image .recurring-item__time {
  align-self: end;
}

.recurring-item__arrow,
.event-row__arrow {
  display: none;
}

.event-row:not(.event-row--notice) {
  grid-template-columns: 72px minmax(0, 1fr);
}

.events-recurring .recurring-item:focus-visible {
  outline-color: var(--gbc-brass-soft);
  outline-offset: -3px;
}

/* Link feedback only: still and fully usable on touch/reduced-motion devices. */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  a.recurring-item,
  a.event-row {
    transition: transform 220ms var(--gbc-ease-out);
  }

  a.recurring-item:hover,
  a.event-row:hover {
    transform: translateY(-4px);
    z-index: 2;
  }
}

.recurring-item__media,
.event-row__media,
.event-detail__hero-media {
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}

.recurring-item__media::after,
.event-row__media::after,
.event-detail__hero-media::after {
  content: "";
  inset: 0;
  position: absolute;
}

.recurring-item__image,
.event-row__image,
.event-detail__hero-image {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

/* Top band darkened (a88, then a70 at 18%) so the day label clears 4.5:1 wherever the photo is light.
   The phone crop put "EVERY SATURDAY" over the bright part of the Soul-winning photo at 2.99:1.
   This is the ONLY declaration of this gradient. A hover/focus copy used to repeat it verbatim; it
   was removed so the two cannot drift, since a darker base with a stale focus copy would drop a
   keyboard user focusing the card back to the failing contrast. */
.recurring-item__media::after {
  background: linear-gradient(180deg, var(--gbc-oxblood-deep-a88), var(--gbc-oxblood-deep-a70) 18%, var(--gbc-oxblood-deep-a18) 36%, var(--gbc-oxblood-deep-a18) 40%, var(--gbc-oxblood-deep-a70) 65%, var(--gbc-oxblood-deep-a88));
}

.recurring-item--with-image > :not(.recurring-item__media),
.event-row--with-image > :not(.event-row__media),
.event-detail__hero-copy {
  position: relative;
  z-index: 1;
}

.recurring-item--with-image::before {
  background: var(--gbc-brass-soft);
}

.recurring-item--with-image .recurring-item__day,
.recurring-item--with-image .recurring-item__arrow {
  color: var(--gbc-brass-soft);
}

.recurring-item--with-image .recurring-item__time {
  color: var(--gbc-cream);
}

.recurring-item--with-image .recurring-item__arrow {
  background: var(--gbc-oxblood-deep-a88);
  border-color: var(--gbc-brass-soft);
  border-width: 2px;
  box-shadow: var(--gbc-home-shadow-sm);
  font-weight: 700;
}

.recurring-item--with-image:hover,
.recurring-item--with-image:focus-visible {
  border-color: var(--gbc-brass-soft);
  color: var(--gbc-cream);
}

.recurring-item--with-image .recurring-item__title,
.recurring-item--with-image:is(:hover, :focus) .recurring-item__title {
  color: var(--gbc-cream);
}

.event-row--with-image {
  --gbc-event-card-scrim: linear-gradient(100deg, var(--gbc-oxblood-deep-a70), var(--gbc-oxblood-deep-a70) 78%, var(--gbc-oxblood-deep-a32));
  background: var(--gbc-oxblood-deep);
  border-bottom-color: var(--gbc-cream-line);
  color: var(--gbc-cream);
  isolation: isolate;
  min-height: 136px;
  overflow: hidden;
  position: relative;
}

.event-row__media::after {
  background: var(--gbc-event-card-scrim);
}

.event-row--with-image .event-row__media .event-row__image,
.recurring-item--with-image .recurring-item__media .recurring-item__image {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
}

.event-row--with-image .event-row__title {
  color: var(--gbc-cream);
}

.event-row--with-image .event-row__meta {
  color: var(--gbc-cream);
}

.event-row--with-image:is(:hover, :focus) .event-row__title,
.event-row--with-image:is(:hover, :focus) .event-row__meta {
  color: var(--gbc-cream);
}

.event-row--with-image .event-row__arrow {
  background: var(--gbc-oxblood-deep-a88);
  border-color: var(--gbc-brass-soft);
  border-width: 2px;
  box-shadow: var(--gbc-home-shadow-sm);
  color: var(--gbc-brass-soft);
  font-weight: 700;
}

.event-row--with-image:not(.event-row--notice):hover,
.event-row--with-image:not(.event-row--notice):focus-visible {
  background: var(--gbc-oxblood-deep);
  color: var(--gbc-cream);
}

.events-calendar .event-row--with-image:focus-visible {
  outline-color: var(--gbc-brass-soft);
}

.event-row--with-image:not(.event-row--notice):hover .event-row__media::after,
.event-row--with-image:not(.event-row--notice):focus-visible .event-row__media::after {
  background: var(--gbc-event-card-scrim);
}

/* Monthly image cards: preserve the phone stack and open into rows when space permits. */
@media (min-width: 720px) {
  .event-list {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    display: grid;
    gap: var(--gbc-s-3);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
  }

  .event-list .event-row {
    align-items: end;
    border: 1px solid var(--gbc-line);
    border-radius: var(--gbc-r);
    gap: var(--gbc-s-3);
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto 1fr;
    min-height: 360px;
    min-width: 0;
    padding: var(--gbc-s-3);
  }

  .event-row__date {
    align-self: start;
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
    min-width: 64px;
  }

  .event-row__date + span {
    grid-column: 1 / -1;
    grid-row: 2;
    min-height: 64px;
  }

  .event-row__arrow,
  .event-row__notice-label {
    align-self: start;
    grid-column: 2;
    grid-row: 1;
  }

  .event-row--with-image {
    --gbc-event-card-scrim: linear-gradient(180deg, var(--gbc-oxblood-deep-a18), var(--gbc-oxblood-deep-a18) 30%, var(--gbc-oxblood-deep-a70) 65%, var(--gbc-oxblood-deep-a88));
  }

  .recurring-item--with-image {
    min-height: 320px;
  }
}

@media (min-width: 1200px) {
  .event-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.event-detail__article--with-image {
  display: block;
}

.event-detail__hero {
  align-items: end;
  background: var(--gbc-oxblood-deep);
  border: 1px solid var(--gbc-brass-45);
  border-radius: var(--gbc-r);
  box-shadow: var(--gbc-home-shadow-lg);
  display: flex;
  isolation: isolate;
  min-height: 360px;
  overflow: hidden;
  padding: clamp(var(--gbc-s-4), 8vw, var(--gbc-s-8));
  position: relative;
}

.event-detail__hero-media::after {
  background: linear-gradient(105deg, var(--gbc-oxblood-deep-a95), var(--gbc-oxblood-deep-a70) 54%, var(--gbc-oxblood-deep-a18));
}

.event-detail__hero-image {
  object-position: center 64%;
}

.event-detail__hero-copy {
  max-width: 760px;
}

.event-detail__hero .event-detail__date {
  color: var(--gbc-brass-soft);
}

.event-detail__hero h1 {
  color: var(--gbc-cream);
  max-width: 14ch;
  text-wrap: balance;
}

.event-detail__facts-panel {
  margin-top: var(--gbc-s-6);
  max-width: 900px;
}

.event-detail__overview {
  border-top: 1px solid var(--gbc-line);
  margin-top: var(--gbc-s-6);
  padding-top: var(--gbc-s-6);
}

.event-detail__overview .events-section-label {
  margin-bottom: var(--gbc-s-2);
}

.event-detail__overview h2 {
  font-size: clamp(2rem, 7vw, 3.4rem);
  line-height: 1.08;
  margin-bottom: var(--gbc-s-3);
  max-width: 16ch;
  text-wrap: balance;
}

.event-detail__overview > p:not(.events-section-label, .event-detail__source) {
  font-size: var(--gbc-text-lede);
  line-height: 1.75;
  max-width: 65ch;
}

.event-detail__overview ul {
  display: grid;
  gap: var(--gbc-s-2);
  line-height: 1.65;
  margin: var(--gbc-s-4) 0 0;
  max-width: 65ch;
  padding-left: var(--gbc-s-3);
}

.event-detail__overview li::marker {
  color: var(--gbc-oxblood);
}

.event-detail__source {
  border-left: 2px solid var(--gbc-brass);
  color: var(--gbc-muted);
  font-family: var(--gbc-font-ui);
  font-size: var(--gbc-text-xs);
  line-height: 1.6;
  margin-top: var(--gbc-s-4);
  padding-left: var(--gbc-s-2);
}

@media (min-width: 720px) {
  .event-detail__hero {
    min-height: 520px;
  }

  .event-detail__facts-panel {
    margin-inline: auto;
    width: min(100%, 900px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .events-mock *,
  .events-mock *::before,
  .events-mock *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }

}
/* ==== 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; }
.visit-welcome-support__tagline { font-family: var(--gbc-font-display); font-size: var(--gbc-text-h3); }
.visit-welcome-support blockquote { margin: var(--gbc-s-4) 0; padding: var(--gbc-s-3) 0; border: 0; border-block: 1px solid var(--gbc-line); }
.visit-welcome-support blockquote p { font-style: italic; }
.visit-welcome-support cite { color: var(--gbc-muted); font-style: normal; }

.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); }
}
