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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* Printing never scrolls, so the observer never fires and every section below the first page
   would print as blank paper. A church prints beliefs statements and event flyers; show
   everything on paper regardless of what the reveal system has done on screen. */
@media print {
  .js-reveal [data-reveal],
  .js-reveal [data-reveal-children] > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
/* ==== source: assets/css/gbc-home.css ==== */
/* Grace Baptist Church — approved River Road homepage, 2026-08-25.
   Composition-for-composition WordPress translation of the approved mockup.
   Mobile first; visual changes require new screenshot approval. */

.home .topline { display: none; }
.home .site-content { position: relative; }
.home .site-main { padding: 0; }

.home-page { overflow: hidden; color: var(--gbc-home-deep); background: var(--gbc-home-paper); }
.home-page .wrap { width: min(1160px, calc(100% - 40px)); }
/* :where() keeps this reset at .home-page weight, so each section's own margin (e.g. .home-pastor__lede)
   wins; the old selectors out-ranked them and headings sat on their ledes (2026-09-19 QA). */
.home-page :where(h1, h2, h3, p, figure, blockquote) { margin-top: 0; }
/* theme.css .section-head h2 (0,1,1) now outranks the reset above; home keeps its flush headings. */
.home-page .section-head h2 { margin-top: 0; }
.home-page h1,
.home-page h2,
.home-page h3 { font-family: var(--gbc-font-display); }
.home-page h2 { margin-bottom: 16px; font-weight: 500; line-height: 1.04; text-wrap: balance; }
.home-page h3 { line-height: 1.15; }
.home-eyebrow { margin-bottom: 10px; color: var(--gbc-home-oxblood); font-family: var(--gbc-font-ui); font-size: 12px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.home-eyebrow--light { color: var(--gbc-home-gold-bright); }
.home-heading > p:last-child { max-width: 530px; margin-bottom: 0; color: var(--gbc-muted); font-size: 15px; line-height: 1.55; }
.home-heading--center { max-width: 690px; margin-inline: auto; text-align: center; }
.home-heading--center > p:last-child { margin-inline: auto; }
.home-heading__river { display: block; width: 72px; aspect-ratio: 200 / 20; margin: 0 auto 15px; background: var(--gbc-home-oxblood); -webkit-mask: url("../images/brand/gbc-river-symbol.png") center/contain no-repeat; mask: url("../images/brand/gbc-river-symbol.png") center/contain no-repeat; }
.home-heading--light h2 { color: var(--gbc-home-cream); }
.home-heading--light > p:last-child { color: var(--gbc-home-cream-a86); }

.home-actions { display: flex; flex-direction: column; gap: 10px; align-items: stretch; }
.home-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 20px; border: 1px solid var(--gbc-home-gold); border-radius: var(--gbc-r-pill); font-family: var(--gbc-font-ui); font-size: var(--gbc-text-sm); font-weight: 700; letter-spacing: .06em; text-align: center; text-transform: uppercase; transition: background-color var(--gbc-dur-fast) var(--gbc-ease-out), color var(--gbc-dur-fast) var(--gbc-ease-out), border-color var(--gbc-dur-fast) var(--gbc-ease-out), box-shadow var(--gbc-dur-fast) var(--gbc-ease-out); }
.home-button--gold { background: var(--gbc-home-gold); color: var(--gbc-home-deep); }
.home-button--ghost { background: transparent; color: var(--gbc-home-cream); }
.home-button--oxblood { min-height: 58px; padding: 8px 18px; border-color: var(--gbc-home-deep); background: var(--gbc-home-deep); color: var(--gbc-home-cream); }
.home-button--cream { border-color: var(--gbc-home-cream); background: var(--gbc-home-cream); color: var(--gbc-home-deep); }
.home-text-link { min-height: 44px; display: inline-flex; align-items: center; padding: 0 2px 3px; border-bottom: 1px solid var(--gbc-home-gold); color: var(--gbc-home-oxblood); font-family: var(--gbc-font-ui); font-size: var(--gbc-text-sm); font-weight: 700; letter-spacing: .07em; text-transform: uppercase; transition: transform 220ms var(--gbc-ease-out), color 220ms var(--gbc-ease-out); }
.home-text-link--light { color: var(--gbc-home-gold-bright); }

/* Hero */
.home-hero { position: relative; height: auto; display: flex; align-items: flex-start; justify-content: center; overflow: hidden; isolation: isolate; color: var(--gbc-home-cream); background-color: var(--gbc-home-deep); text-align: center; }
/* The hero photo is a responsive <img> painted exactly like the former cover background:
   same box (inset: 0 = the padding box a background is positioned in), same cover scaling,
   same focal point. z-index -2 keeps it under the scrim (-1) inside the isolated hero.
   The element+class selector (0,2,1) is required: the starter's img[width][height] { height: auto }
   in front-end.css otherwise wins and the photo keeps its natural height instead of the hero's. */
.home-hero img.home-hero__image { position: absolute; z-index: -2; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 52% 75%; }
.home-hero__scrim { position: absolute; z-index: -1; inset: 0; background: linear-gradient(to bottom, var(--gbc-home-deep-a88), var(--gbc-home-deep-a58) 31%, var(--gbc-home-deep-a76) 58%, var(--gbc-home-deep-a96)); }
.home-hero__content { width: min(720px, calc(100% - 38px)); padding: var(--gbc-s-4) 0 144px; }
.home-hero .home-eyebrow { display: inline-block; margin-bottom: 16px; padding: 6px 9px; border: 1px solid var(--gbc-home-gold-a55); border-radius: var(--gbc-r-pill); background: var(--gbc-home-deep-a76); line-height: 1.35; }
.home-hero__title { margin-bottom: 19px; color: var(--gbc-home-cream); font-size: clamp(52px, 14vw, 60px); font-weight: 600; line-height: .96; }
.home-hero__title em { color: var(--gbc-home-gold-bright); font-weight: 500; }
.home-hero__lede { max-width: 610px; margin: 0 auto 22px; color: var(--gbc-home-cream); font-size: 17px; line-height: 1.5; }
.home-hero__lede-desktop { display: none; }
.home-hero .home-button--ghost { border-color: var(--gbc-home-cream); background: var(--gbc-home-cream-a86); color: var(--gbc-home-deep); }
.home-hero__verse { position: absolute; z-index: 2; inset: auto 6% 20px; display: block; padding-top: 15px; border-top: 1px solid var(--gbc-home-gold-a55); color: var(--gbc-home-gold-bright); font-family: var(--gbc-font-body); font-size: 13px; font-style: italic; line-height: 1.35; text-align: center; }
.home-hero__verse cite { display: block; margin-top: 4px; color: var(--gbc-home-gold-bright); font-family: var(--gbc-font-ui); font-size: 12px; font-style: normal; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }

/* Facts */
.home-facts { border-top: 1px solid var(--gbc-line); background: var(--gbc-home-cream); }
.home-facts__grid { width: 100%; display: grid; }
.home-fact { padding: 15px 17px; border-bottom: 1px solid var(--gbc-line); }
.home-fact p { margin-bottom: 5px; color: var(--gbc-home-oxblood); font-family: var(--gbc-font-ui); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.home-fact strong,
.home-fact a { color: var(--gbc-home-deep); font-size: 15px; line-height: 1.3; }
.home-fact strong { display: block; font-weight: 600; }
.home-fact a { color: var(--gbc-home-oxblood); font-family: var(--gbc-font-ui); font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
.home-fact__row { min-height: 24px; display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 9px; align-items: center; }
.home-fact a.home-fact__row { min-height: 44px; }
.home-fact__row + .home-fact__row { margin-top: 1px; }
.home-fact__icon { width: 18px; height: 18px; display: block; color: var(--gbc-home-oxblood); fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* First Sunday */
.home-welcome { padding: 64px 24px 72px; border-top: 1px solid var(--gbc-line); background: var(--gbc-home-paper); }
.home-welcome .home-section { padding: 0; }
.home-welcome h2 { max-width: 610px; margin-inline: auto; font-size: 34px; }
.home-welcome .home-heading { max-width: 680px; margin: 0 auto 56px; }
.home-welcome__current { position: relative; }
.home-welcome__grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr; gap: 0; margin: 0; padding: 0; list-style: none; }
.home .home-welcome__grid > .home-welcome-card { position: relative; min-height: 0; margin: 0; padding: 36px 8px 40px 58px; border-top: 1px solid var(--gbc-line); background: transparent; }
.home-welcome-card__number { position: absolute; top: 38px; left: 8px; color: var(--gbc-home-oxblood); font-family: var(--gbc-font-display); font-size: 22px; font-style: italic; line-height: 1; }
.home-welcome-card h3 { max-width: 19ch; margin-bottom: 14px; color: var(--gbc-home-oxblood); font-size: clamp(26px, 7vw, 38px); font-weight: 600; line-height: 1.08; }
.home-welcome-card p { max-width: 36ch; margin-bottom: 0; color: var(--gbc-muted); font-size: 16px; line-height: 1.7; }
.home-welcome .home-text-link { display: table; margin: 34px auto 0; }

/* Life together */
.home-life { position: relative; display: flex; flex-direction: column; overflow: hidden; background: var(--gbc-home-deep); color: var(--gbc-home-cream); }
.home-life__media { position: relative; min-height: 255px; margin: 0; overflow: hidden; }
.home-life__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, var(--gbc-home-deep-a88), var(--gbc-home-deep-a0) 58%); }
.home-life__media img { width: 100%; height: 255px; display: block; object-fit: cover; object-position: 43% 45%; filter: saturate(.76) sepia(.12) contrast(1.04); transition: transform 320ms var(--gbc-ease-out); }
.home-life__media figcaption { position: absolute; z-index: 2; inset: auto auto 14px 15px; padding: 8px 10px; background: var(--gbc-home-deep-a76); color: var(--gbc-home-gold-bright); font-family: var(--gbc-font-ui); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.home-life__content { position: relative; z-index: 2; padding: 38px 20px 43px; overflow: hidden; }
.home-life__all { position: absolute; z-index: -1; top: -35px; right: 4px; color: var(--gbc-home-cream-a36); font-family: var(--gbc-font-display); font-size: 138px; font-style: italic; line-height: .8; letter-spacing: -.08em; }
.home-life h2 { max-width: 470px; margin-bottom: 0; color: var(--gbc-home-cream); font-size: 39px; line-height: .97; }
.home-life__lede { max-width: 500px; margin: 16px 0 22px; color: var(--gbc-home-cream-a86); font-size: var(--gbc-text-readable); line-height: 1.55; }
.home-life__lede--desktop { display: none; }
.home-life__paths { margin: 0; padding: 0; border-bottom: 1px solid var(--gbc-home-gold-a55); list-style: none; }
.home-life__paths li { position: relative; padding: 15px 0 15px 25px; border-top: 1px solid var(--gbc-home-gold-a55); }
.home-life__paths li::before { content: ""; position: absolute; left: 1px; top: 22px; width: 11px; height: 5px; border-radius: 50%; background: var(--gbc-home-gold); transform: rotate(-8deg); }
.home-life__paths h3 { margin-bottom: 5px; color: var(--gbc-home-cream); font-size: 19px; font-weight: 600; }
.home-life__paths p { margin-bottom: 0; color: var(--gbc-home-cream-a68); font-size: var(--gbc-text-readable); line-height: 1.5; }
.home-life .home-text-link { margin-top: 21px; }

/* Pastor */
.home-pastor { position: relative; padding: 45px 20px 49px; overflow: hidden; border-top: 1px solid var(--gbc-line); background: var(--gbc-home-paper); }
.home-pastor__grid { width: min(1160px, 100%); display: flex; flex-direction: column; gap: 36px; }
.home-pastor__portrait { position: relative; width: min(88%, 390px); margin: 0 auto; padding: 9px 9px 12px; border: 1px solid var(--gbc-line); background: var(--gbc-home-cream); box-shadow: 9px 9px 0 var(--gbc-home-oxblood); transform: rotate(-1deg); transition: transform 320ms var(--gbc-ease-out), box-shadow 320ms var(--gbc-ease-out); }
.home-pastor__portrait img { width: 100%; height: auto; display: block; object-fit: contain; filter: saturate(.84) contrast(1.02); }
/* In flow, not pinned into the bottom band: on phones the caption wraps to two lines and the pinned version rode up onto the photo (2026-09-19 QA). */
.home-pastor__portrait figcaption { margin-top: 10px; padding-inline: 4px; line-height: 1.35; color: var(--gbc-home-oxblood); font-family: var(--gbc-font-ui); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.home-pastor h2 { max-width: 700px; margin-bottom: 0; color: var(--gbc-home-deep); font-size: 38px; line-height: .98; }
.home-pastor__lede { max-width: 670px; margin: 17px 0 20px; color: var(--gbc-muted); font-size: var(--gbc-text-readable); line-height: 1.6; }
.home-pastor blockquote { position: relative; max-width: 650px; margin: 0; padding: 17px 0 17px 23px; border-top: 1px solid var(--gbc-home-gold); border-bottom: 1px solid var(--gbc-home-gold); color: var(--gbc-home-oxblood); font-family: var(--gbc-font-display); font-size: 19px; font-style: italic; font-weight: 500; line-height: 1.35; }
.home-pastor blockquote::before { content: "“"; position: absolute; left: 0; top: 10px; color: var(--gbc-home-gold); font-family: var(--gbc-font-display); font-size: 32px; font-style: normal; line-height: 1; }
.home-pastor .home-actions { display: grid; gap: 12px; margin-top: 22px; }
.home-pastor .home-button--oxblood { width: 100%; justify-content: flex-start; }
.home-pastor .home-text-link { justify-content: center; }

/* Plan your visit */
.home-arrival { position: relative; padding: 45px 20px 53px; overflow: hidden; color: var(--gbc-home-cream); background: var(--gbc-home-deep); }
.home-arrival::before { content: ""; position: absolute; left: -28%; bottom: -36px; width: 96%; aspect-ratio: 200 / 20; background: var(--gbc-home-oxblood); opacity: .5; transform: rotate(-7deg); -webkit-mask: url("../images/brand/gbc-river-symbol.png") center/contain no-repeat; mask: url("../images/brand/gbc-river-symbol.png") center/contain no-repeat; }
.home-arrival__grid { position: relative; width: min(1160px, 100%); display: flex; flex-direction: column; gap: 34px; }
.home-arrival h2 { max-width: 650px; margin-bottom: 0; color: var(--gbc-home-cream); font-size: 40px; line-height: .97; }
.home-arrival__lede { max-width: 630px; margin: 18px 0 0; color: var(--gbc-home-cream-a86); font-size: var(--gbc-text-readable); line-height: 1.62; }
.home-arrival .home-actions { display: grid; gap: 10px; margin-top: 23px; }
.home-arrival .home-button { width: 100%; }
.home-button__arrow { display: inline-block; font-family: var(--gbc-font-ui); font-size: 1.1em; line-height: 1; }
.home-schedule { position: relative; width: 100%; padding: 23px 20px 21px; border-top: 6px solid var(--gbc-home-gold); color: var(--gbc-home-deep); background: var(--gbc-home-cream); box-shadow: 9px 9px 0 var(--gbc-home-oxblood); }
.home-schedule__header { display: flex; align-items: end; justify-content: space-between; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid var(--gbc-line); }
.home-schedule__header p { margin-bottom: 5px; color: var(--gbc-home-oxblood); font-family: var(--gbc-font-ui); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.home-schedule__header h3 { margin-bottom: 0; color: var(--gbc-home-deep); font-size: 27px; font-weight: 600; line-height: 1; }
.home-schedule__header > span { width: 55px; aspect-ratio: 200 / 20; background: var(--gbc-home-oxblood); -webkit-mask: url("../images/brand/gbc-river-symbol.png") center/contain no-repeat; mask: url("../images/brand/gbc-river-symbol.png") center/contain no-repeat; }
.home-schedule__list { margin: 0; padding: 0; list-style: none; }
.home-schedule__list li { display: grid; grid-template-columns: 72px 1fr; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--gbc-line); }
.home-schedule__list time { color: var(--gbc-home-oxblood); font-family: var(--gbc-font-ui); font-size: 12px; font-weight: 700; line-height: 1.35; font-variant-numeric: tabular-nums; }
.home-schedule__list strong { display: block; color: var(--gbc-home-deep); font-size: 14px; line-height: 1.25; }
.home-schedule__list span { display: block; margin-top: 3px; color: var(--gbc-muted); font-size: 12px; line-height: 1.35; }
.home-schedule address { margin-top: 18px; color: var(--gbc-home-deep); font-size: 12px; font-style: normal; font-weight: 600; line-height: 1.45; }
.home-schedule address small { display: block; margin-bottom: 4px; color: var(--gbc-home-oxblood); font-family: var(--gbc-font-ui); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }

/* Events */
.home-events { position: relative; padding: 45px 20px 50px; overflow: hidden; border-top: 1px solid var(--gbc-line); background: var(--gbc-home-cream); }
.home-events::after { content: "2026"; position: absolute; right: -10px; top: -12px; color: var(--gbc-home-paper); font-family: var(--gbc-font-display); font-size: 92px; font-weight: 600; line-height: 1; letter-spacing: -.08em; pointer-events: none; }
.home-events .home-section { position: relative; z-index: 1; padding: 0; }
.home-events h2 { max-width: 550px; margin-bottom: 0; color: var(--gbc-home-deep); font-size: 39px; line-height: .98; }
.home-events .home-heading > p:last-child { margin-top: 17px; font-size: var(--gbc-text-readable); line-height: 1.6; }
.home-events__agenda { margin: 24px 0 0; padding: 0; border-top: 2px solid var(--gbc-home-oxblood); list-style: none; }
.home-event { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 15px; align-items: center; padding: 21px 0; border-bottom: 1px solid var(--gbc-line); transition: transform 320ms var(--gbc-ease-out), background-color 220ms var(--gbc-ease-out); }
.home-event__date { display: grid; grid-template-columns: 42px 1fr; gap: 10px; align-items: center; color: var(--gbc-home-oxblood); }
.home-event__date > span { font-family: var(--gbc-font-display); font-size: 35px; font-weight: 500; line-height: .9; }
.home-event__date small { font-family: var(--gbc-font-ui); font-size: 12px; font-weight: 700; line-height: 1.45; letter-spacing: .11em; text-transform: uppercase; }
.home-event h3 { margin-bottom: 5px; font-size: 20px; font-weight: 600; }
.home-event h3 a { min-height: 44px; display: inline-flex; align-items: center; color: var(--gbc-home-deep); }
.home-event p { margin-bottom: 0; color: var(--gbc-muted); font-size: 12px; line-height: 1.45; }
.home-event__audience { grid-column: 2; justify-self: start; min-width: 0; margin-top: -4px; padding: 7px 9px; border: 1px solid var(--gbc-home-gold); border-radius: var(--gbc-r-pill); color: var(--gbc-home-oxblood); font-family: var(--gbc-font-ui); font-size: 12px; font-weight: 700; letter-spacing: .11em; text-align: center; text-transform: uppercase; }
.home-events__footer { display: block; margin-top: 22px; }
.home-events__footer p { margin-bottom: 15px; color: var(--gbc-muted); font-size: var(--gbc-text-readable); line-height: 1.45; }

/* Member path */
.home-next { position: relative; padding: 48px 20px 54px; overflow: hidden; color: var(--gbc-home-cream); background: var(--gbc-home-oxblood); }
.home-next::before { content: "grace"; position: absolute; right: -38px; bottom: -32px; color: var(--gbc-home-cream-a10); font-family: var(--gbc-font-display); font-size: 132px; font-style: italic; font-weight: 500; line-height: .8; letter-spacing: -.08em; pointer-events: none; }
.home-next .home-section { position: relative; z-index: 1; padding: 0; }
.home-next h2 { max-width: 560px; margin-bottom: 0; color: var(--gbc-home-cream); font-size: 39px; line-height: .98; }
.home-next .home-heading > p:last-child { margin-top: 17px; color: var(--gbc-home-cream-a86); font-size: var(--gbc-text-readable); line-height: 1.6; }
.home-next__grid { display: grid; grid-template-columns: 1fr; margin-top: 25px; border-top: 1px solid var(--gbc-home-gold-a55); border-bottom: 1px solid var(--gbc-home-gold-a55); }
.home-next-card { min-height: 0; display: flex; flex-direction: column; padding: 22px 0 21px; border-bottom: 1px solid var(--gbc-home-gold-a55); color: var(--gbc-home-cream); transition: transform 320ms var(--gbc-ease-out), background-color 220ms var(--gbc-ease-out); }
.home-next-card:last-child { border-bottom: 0; }
.home-next-card > span { margin-bottom: 15px; color: var(--gbc-home-gold-bright); font-family: var(--gbc-font-ui); font-size: 12px; font-weight: 700; letter-spacing: .14em; }
.home-next-card h3 { margin-bottom: 0; color: var(--gbc-home-cream); font-size: 24px; font-weight: 600; line-height: 1.08; }
.home-next-card p { margin: 10px 0 18px; color: var(--gbc-home-cream-a86); font-size: var(--gbc-text-readable); line-height: 1.5; }
.home-next-card strong { min-height: 44px; display: inline-flex; align-items: center; margin-top: auto; color: var(--gbc-home-gold-bright); font-family: var(--gbc-font-ui); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }

/* Approved footer proportions on the homepage. */
.home .site-footer { position: relative; padding: 47px 0 22px; overflow: hidden; }
.home .site-footer::before { content: ""; position: absolute; top: 0; left: 20px; right: 20px; height: 1px; background: var(--gbc-home-gold-a55); }
.home .site-footer > .wrap { width: min(1160px, calc(100% - 40px)); }
.home .footer__grid { grid-template-columns: 1fr; gap: 34px; }
.home .footer__mark { inline-size: 190px; }
.home .footer__blurb { margin: 19px 0 12px; color: var(--gbc-home-cream-a86); font-size: 14px; line-height: 1.65; }
.home .footer__h { margin: 3px 0 11px; color: var(--gbc-home-gold-bright); font-size: 12px; letter-spacing: .14em; }
.home .footer__contact-row { margin-top: 0; gap: 11px; }
.home .footer__addr,
.home .footer__col > a.footer__contact-row,
.home .site-footer .footer__nav a { font-size: 14px; }
.home .footer__times { max-width: none; margin-top: 0; }
.home .footer__times li { padding: 11px 0; font-size: 13px; }
.home .footer__nav { margin-top: 0; }
.home .footer__est { display: block; margin-top: 36px; padding: 19px 0; border-top: 1px solid var(--gbc-home-cream-a18); border-bottom: 1px solid var(--gbc-home-cream-a18); color: var(--gbc-home-cream-a86); text-align: left; font-family: var(--gbc-font-body); font-size: 12px; font-style: normal; line-height: 1.5; }
.home .footer__rule { display: none; }
.home .footer__bottom { display: grid; gap: 8px; margin-top: 18px; padding-top: 0; border-top: 0; color: var(--gbc-home-cream-a68); font-family: var(--gbc-font-ui); font-size: 12px; line-height: 1.5; }
.home-page :where(a, button):focus-visible { outline: 3px solid var(--gbc-home-gold-bright); outline-offset: 3px; }

@media (min-width: 40rem) {
  .home-actions { flex-direction: row; align-items: center; justify-content: center; gap: 12px; }
  .home-button { min-width: 190px; }
  .home-heading--split { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr); gap: 68px; align-items: end; }
  .home-heading--split > p:last-child { justify-self: end; margin-top: 0; }
  .home-event { grid-template-columns: 144px minmax(0, 1fr) auto; gap: 28px; padding: 25px 4px; }
  .home-event__audience { grid-column: auto; justify-self: end; min-width: 92px; margin-top: 0; padding: 9px 11px; }
  .home-events__footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 25px; }
  .home-events__footer p { margin-bottom: 0; }
  .home .footer__grid { grid-template-columns: 1.3fr 1fr; }
}

@media (min-width: 56rem) {
  .home-hero { height: auto; min-height: 0; }
  .home-hero img.home-hero__image { object-position: 50% 48%; }
  /* Mid stop a66, not a58: at a58 the italic line measured 2.97:1 (needs 3:1) and the lede sat exactly on 4.5:1 over the aisle photo. */
  .home-hero__scrim { background: linear-gradient(to bottom, var(--gbc-home-deep-a76), var(--gbc-home-deep-a66) 48%, var(--gbc-home-deep-a96)); }
  .home-hero__content { padding: var(--gbc-s-6) 0 144px; }
  .home-hero .home-eyebrow { display: block; padding: 0; border: 0; background: transparent; }
  .home-hero__title { margin-bottom: 24px; font-size: clamp(72px, 7vw, 92px); font-weight: 600; }
  .home-hero__lede { margin-bottom: 28px; font-size: 21px; }
  .home-hero__lede-desktop { display: inline; }
  .home-hero .home-button--ghost { border-color: transparent; background: var(--gbc-home-cream-a86); }
  .home-hero__verse { inset: auto 50% 22px auto; width: min(820px, 90%); transform: translateX(50%); font-size: 16px; }
  .home-hero__verse cite { display: inline; margin: 0; }

  .home-welcome { padding: 88px clamp(48px, 6vw, 96px) 96px; }
  .home-heading__river { width: 86px; margin-bottom: 18px; }
  .home-welcome h2 { font-size: clamp(34px, 4.3vw, 56px); }
  .home-heading > p:last-child { font-size: 17px; }
  .home-welcome .home-heading { margin-bottom: 72px; }
  .home-welcome__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(36px, 5vw, 88px); }
  .home .home-welcome__grid > .home-welcome-card { min-height: 300px; padding: 88px 0 32px; }
  .home-welcome-card__number { top: 38px; left: 0; }
  .home .home-welcome__grid > .home-welcome-card:nth-child(2) { margin-top: 54px; }
  .home .home-welcome__grid > .home-welcome-card:nth-child(3) { margin-top: 14px; }
  .home-welcome-card h3 { font-size: clamp(29px, 2.4vw, 41px); }

  .home-life { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr); min-height: 640px; }
  .home-life__media { min-height: 640px; }
  .home-life__media::after { background: linear-gradient(to right, var(--gbc-home-deep-a0) 62%, var(--gbc-home-deep-a88)), linear-gradient(to top, var(--gbc-home-deep-a58), var(--gbc-home-deep-a0) 46%); }
  .home-life__media img { height: 100%; min-height: 640px; object-position: 48% center; }
  .home-life__media figcaption { inset: auto auto 24px 26px; }
  .home-life__content { align-self: center; padding: 58px 52px 58px 36px; }
  .home-life__all { top: -86px; right: -6px; font-size: 240px; }
  .home-life h2 { font-size: clamp(42px, 4.8vw, 68px); }
  .home-life__lede { margin: 20px 0 28px; font-size: 16px; }
  .home-life__lede--mobile { display: none; }
  .home-life__lede--desktop { display: block; }
  .home-life__paths li { padding: 18px 0 18px 29px; }
  .home-life__paths li::before { top: 26px; width: 13px; }
  .home-life__paths h3 { font-size: 21px; }
  .home-life .home-text-link { margin-top: 25px; }

  .home-pastor { padding: 72px 48px 78px; }
  .home-pastor::before { content: ""; position: absolute; top: 0; bottom: 0; left: 42%; width: 1px; background: var(--gbc-line); }
  .home-pastor__grid { display: grid; grid-template-columns: minmax(310px, .82fr) minmax(0, 1.18fr); gap: 70px; align-items: center; }
  .home-pastor__portrait { width: auto; margin-left: 20px; padding: 13px 13px 16px; box-shadow: 14px 14px 0 var(--gbc-home-oxblood); transform: rotate(-1.5deg); }
  .home-pastor__portrait figcaption { margin-top: 14px; padding-inline: 5px; }
  .home-pastor h2 { font-size: clamp(42px, 5vw, 68px); }
  .home-pastor__lede { margin: 21px 0 25px; font-size: 16px; }
  .home-pastor blockquote { padding: 20px 22px 20px 31px; font-size: 23px; }
  .home-pastor blockquote::before { font-size: 40px; }
  .home-pastor .home-actions { display: flex; justify-content: flex-start; gap: 14px; margin-top: 27px; }
  .home-pastor .home-button--oxblood { width: auto; }

  .home-arrival { padding: 76px 54px 80px; }
  .home-arrival::before { left: -4%; bottom: -90px; width: 48%; }
  .home-arrival__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(350px, .95fr); gap: 66px; align-items: center; }
  .home-arrival h2 { font-size: clamp(44px, 5.3vw, 72px); }
  .home-arrival__lede { margin-top: 22px; font-size: 17px; }
  .home-arrival .home-actions { display: flex; justify-content: flex-start; gap: 12px; margin-top: 28px; }
  .home-arrival .home-button { width: auto; min-height: 50px; }
  .home-schedule { padding: 28px 30px 26px; box-shadow: 16px 16px 0 var(--gbc-home-oxblood); }
  .home-schedule__header h3 { font-size: 31px; }
  .home-schedule__header > span { width: 68px; }
  .home-schedule__list li { grid-template-columns: 82px 1fr; gap: 16px; padding: 15px 0; }
  .home-schedule__list strong { font-size: 15px; }
  .home-schedule__list span { font-size: 14px; }
  .home-schedule address { font-size: 13px; }

  .home-events { padding: 74px 54px 78px; }
  .home-events::after { right: -16px; top: -42px; font-size: 170px; }
  .home-events h2 { font-size: clamp(42px, 5vw, 66px); }
  .home-events .home-heading > p:last-child { font-size: 16px; }
  .home-events__agenda { margin-top: 31px; }
  .home-event__date > span { font-size: 45px; }
  .home-event h3 { font-size: 25px; }
  .home-event p { font-size: 13px; }

  .home-next { padding: 78px 54px 84px; }
  .home-next::before { right: -24px; bottom: -84px; font-size: 220px; }
  .home-next h2 { font-size: clamp(42px, 5vw, 66px); }
  .home-next .home-heading > p:last-child { font-size: 16px; }
  .home-next__grid { grid-template-columns: repeat(3, 1fr); margin-top: 34px; }
  .home-next-card { min-height: 202px; padding: 27px 26px 25px; border-right: 1px solid var(--gbc-home-gold-a55); border-bottom: 0; }
  .home-next-card:last-child { border-right: 0; }
  .home-next-card > span { margin-bottom: 26px; }
  .home-next-card h3 { font-size: 27px; }

  .home .site-footer { padding: 70px 0 24px; }
  .home .site-footer::before { left: 54px; right: 54px; }
  .home .footer__grid { grid-template-columns: 1.45fr .9fr 1fr .72fr; gap: 48px; }
  .home .footer__mark { inline-size: 230px; }
  .home .footer__blurb { margin: 23px 0 19px; font-size: 15px; }
  .home .footer__h { margin-bottom: 18px; }
  .home .footer__contact-row { gap: 12px; }
  .home .footer__addr,
  .home .footer__col > a.footer__contact-row,
  .home .site-footer .footer__nav a { font-size: 14px; }
  .home .footer__times li { padding: 9px 0; }
  .home .footer__est { display: flex; margin-top: 48px; padding: 0; border: 0; text-align: center; }
  .home .footer__rule { display: block; }
  .home .footer__bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--gbc-home-cream-a10); }
}

/* Keep every fact visible; use columns only when contact details fit comfortably. */
@media (min-width: 60rem) {
  .home-facts__grid { grid-template-columns: 1fr 1.2fr 1fr; }
  .home-fact { padding: 18px 22px; border-right: 1px solid var(--gbc-line); border-bottom: 0; }
  .home-fact:nth-child(3) { border-right: 0; }
}

@media (hover: hover) {
  .home-text-link:hover { transform: translateY(-2px); }
  .home-life:hover .home-life__media img { transform: scale(1.025); }
  .home-pastor:hover .home-pastor__portrait { transform: rotate(-.7deg) translateY(-4px); box-shadow: 14px 14px 0 var(--gbc-home-oxblood); }
  .home-event:hover { transform: translateX(6px); background: var(--gbc-home-gold-a18); }
  .home-next-card:hover { background: var(--gbc-home-cream-a10); }
}

/* Theme-wide CTA behavior: every variant has an explicit hover/focus surface
   and foreground, matching the approved inner-page interaction pattern. */
.home-button--gold:is(:hover, :focus-visible) { background: var(--gbc-home-gold-bright); border-color: var(--gbc-home-gold-bright); color: var(--gbc-home-deep); box-shadow: var(--gbc-home-shadow-sm); }
.home-button--ghost:is(:hover, :focus-visible) { background: var(--gbc-home-cream); border-color: var(--gbc-home-cream); color: var(--gbc-home-deep); box-shadow: var(--gbc-home-shadow-sm); }
.home-button--oxblood:is(:hover, :focus-visible) { background: var(--gbc-oxblood-2); border-color: var(--gbc-oxblood-2); color: var(--gbc-home-cream); box-shadow: var(--gbc-home-shadow-sm); }
.home-button--cream:is(:hover, :focus-visible) { background: var(--gbc-home-gold-bright); border-color: var(--gbc-home-gold-bright); color: var(--gbc-home-deep); box-shadow: var(--gbc-home-shadow-sm); }

/* Keep the welcome text and visit actions readable immediately on arrival. */

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