/*
Theme Name: GeneratePress Reference Layout
Description: Boundary Road Reserve inspired image card layout for GeneratePress. Responsive homepage, blog, archives, articles and pages.
Author: Custom Theme
Version: 1.3.2
Template: generatepress
Requires at least: 6.2
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gp-reference
*/
:root { --gr-ink:#222; --gr-muted:#575760; --gr-blue:#1f74bf; --gr-card:rgba(31,116,191,.1); --gr-width:1400px; }
body.gr-site { margin:0; background:#fff; color:var(--gr-ink); font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif; font-size:17px; line-height:1.8; }
.gr-site *, .gr-site *::before, .gr-site *::after { box-sizing:border-box; }
.gr-site a { color:var(--gr-blue); text-decoration:none; }
.gr-site a:hover { color:#164f81; }
.gr-site a:focus-visible, .gr-site button:focus-visible, .gr-site summary:focus-visible, .gr-site input:focus-visible, .gr-site textarea:focus-visible { outline:3px solid #eeb548; outline-offset:4px; }
.gr-wrap { width:100%; max-width:var(--gr-width); margin-inline:auto; padding-inline:20px; }
.gr-header { background:#fff; border-bottom:1px solid #dedede; }
.gr-header-inner { min-height:71px; display:flex; align-items:center; gap:25px; flex-wrap:wrap; position:relative; }
.gr-branding { margin-right:auto; display:flex; align-items:center; }
.gr-branding .custom-logo-link { display:block; line-height:0; padding-block:14px; }
.gr-branding .custom-logo { display:block; width:200px; max-width:100%; height:auto; max-height:70px; object-fit:contain; }
.gr-brand { margin-right:auto; color:var(--gr-ink)!important; font-size:20px; font-weight:700; line-height:1.3; padding-block:18px; }
.gr-menu,.gr-footer-menu { margin:0; padding:0; list-style:none; }
.gr-menu { display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.gr-menu li { margin:0; position:relative; }
.gr-menu a { display:block; color:var(--gr-ink); padding-block:18px; }
.gr-menu a:hover,.gr-menu .current-menu-item>a { color:var(--gr-blue); }
.gr-menu .sub-menu { display:none; position:absolute; inset:100% auto auto 0; min-width:210px; padding:10px 18px; margin:0; list-style:none; background:#eef5fb; z-index:20; }
.gr-menu li:hover>.sub-menu,.gr-menu li:focus-within>.sub-menu { display:block; }
.gr-menu .sub-menu a { padding-block:7px; }
.gr-menu .sub-menu .sub-menu { position:static; }
.gr-search summary { cursor:pointer; color:var(--gr-ink); font-size:15px; }
.gr-search-panel { position:absolute; right:20px; top:100%; width:min(380px,calc(100vw - 40px)); background:#eef5fb; padding:18px; z-index:25; }
.gr-search-form { display:flex; gap:8px; flex-wrap:wrap; }
.gr-site input[type="search"],.gr-site input[type="text"],.gr-site input[type="email"],.gr-site input[type="url"],.gr-site textarea { border:0; background:#f2f5f8; border-radius:5px; color:var(--gr-ink); padding:12px; font:inherit; max-width:100%; }
.gr-search-form input { flex:1; min-width:0; width:120px; }
.gr-site button,.gr-site input[type="submit"] { border:0; border-radius:5px; background:var(--gr-blue); color:#fff; padding:10px 16px; cursor:pointer; font:inherit; }
.gr-site button:hover,.gr-site input[type="submit"]:hover { background:#164f81; }
.gr-menu-toggle { display:none; }
.gr-listing { padding-block:20px 45px; min-height:50vh; }
.gr-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:stretch; }
.gr-card { background:var(--gr-card); border:0; border-radius:10px; padding:15px; display:flex; flex-direction:column; margin:0; min-width:0; }
.gr-card h2 { font-size:20px; line-height:1.5; font-weight:700; margin:0 0 12px; overflow-wrap:anywhere; }
.gr-card h2 a { color:var(--gr-ink); }
.gr-card h2 a:hover { color:var(--gr-blue); }
.gr-excerpt { margin:0 0 18px; font-size:17px; line-height:1.8; }
.gr-meta { display:flex; flex-wrap:wrap; gap:5px 14px; color:var(--gr-muted); font-size:14px; line-height:1.7; }
.gr-card .gr-meta { margin-top:auto; }
.gr-meta a { color:var(--gr-ink); }
.gr-pagination { margin-block:30px 0; }
.gr-pagination ul { display:flex; flex-wrap:wrap; gap:10px; margin:0; padding:0; list-style:none; }
.gr-pagination a,.gr-pagination span { display:inline-block; padding:6px 12px; background:var(--gr-card); border-radius:5px; }
.gr-pagination .current { background:var(--gr-blue); color:white; }
.gr-site h1 { font-size:32px; line-height:1.35; font-weight:700; overflow-wrap:anywhere; }
.gr-archive-heading { margin-bottom:25px; }
.gr-single { padding-block:20px 45px; }
.gr-article-heading { margin-bottom:30px; }
.gr-article-heading h1 { margin:12px 0 15px; }
.gr-breadcrumbs { font-size:14px; }
.gr-reading-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:40px; }
.gr-reading-layout>div { min-width:0; }
.gr-prose p { margin:0 0 1.5em; }
.gr-prose h2 { font-size:30px; line-height:1.4; font-weight:700; margin:1.2em 0 .6em; }
.gr-prose h3 { font-size:24px; line-height:1.4; font-weight:700; }
.gr-prose ul,.gr-prose ol { margin-left:1.5em; }
.gr-prose blockquote { margin:24px 0; border:0; border-radius:8px; padding:20px; background:var(--gr-card); font-size:inherit; }
.gr-prose table { display:block; overflow-x:auto; border:0; max-width:100%; }
.gr-prose td,.gr-prose th { border:0; padding:10px; }
.gr-prose tr:nth-child(even) { background:#f2f5f8; }
.gr-prose pre { overflow:auto; max-width:100%; }
.gr-prose .alignwide,.gr-prose .alignfull { margin-inline:0; max-width:100%; width:100%; }
.gr-sidebar { min-width:0; padding:0 40px 40px; }
.gr-sidebar h2 { font-size:30px; line-height:1.2; font-weight:500; margin:0 0 20px; padding-bottom:5px; border:0; }
.gr-sidebar h2 .gr-latest-accent { color:#1e73be; font-size:inherit; font-weight:inherit; line-height:inherit; }
.gr-sidebar ul { list-style:none; margin:0; padding:0; display:grid; gap:20px; }
.gr-sidebar a { color:var(--gr-ink); font-size:17px; font-weight:700; line-height:1.5; display:flex; align-items:flex-start; gap:10px; background:transparent; border:0; border-radius:0; padding:0; }
.gr-sidebar-title { flex:1; min-width:0; overflow-wrap:anywhere; }
.gr-sidebar a:hover { color:#1e73be; }
.gr-author { display:flex; align-items:flex-start; gap:22px; background:var(--gr-card); padding:24px; border:0; border-radius:12px; margin-top:30px; }
.gr-author-photo { flex:0 0 96px; line-height:0; }
.gr-author-photo .avatar { display:block; width:96px; height:96px; border-radius:50%; object-fit:cover; margin:0; }
.gr-author-details { flex:1; min-width:0; }
.gr-author h2 a { color:var(--gr-ink); }
.gr-author h2 a:hover { color:var(--gr-blue); }
.gr-author h2 { font-size:22px; font-weight:700; margin:0 0 10px; }
.gr-author p { margin:0; overflow-wrap:anywhere; }
@media (max-width:540px) { .gr-author { flex-direction:column; gap:16px; padding:20px; } .gr-author-photo { flex-basis:auto; } }
.gr-related { margin-top:30px; }
.gr-related>h2 { font-size:24px; font-weight:700; }
.gr-related .gr-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.gr-related .gr-card h2 { font-size:18px; }
.gr-tags { margin:20px 0; }
.gr-page-banner { background:var(--gr-blue); color:#fff; padding:28px 0; }
.gr-page-banner h1 { margin:0; text-align:center; }
.gr-page-content { max-width:940px; margin:35px auto 50px; padding-inline:20px; }
.gr-footer { background:#222; color:#f2f2f2; padding:40px 30px 0; }
.gr-footer-grid { display:grid; grid-template-columns:minmax(0,4fr) minmax(0,3fr) minmax(0,3fr); gap:30px; }
.gr-footer-intro { padding-top:25px; }
.gr-footer-grid>div:nth-child(2) { text-align:center; }
.gr-footer-bottom { padding-block:30px; text-align:center; }
.gr-footer-bottom p { margin:0; }
.gr-footer h2 { font-size:22px; line-height:1.4; font-weight:700; color:#fff; margin:0 0 18px; }
.gr-footer p { margin:0 0 15px; }
.gr-footer a { color:#fff; }
.gr-footer a:hover { color:#fff; text-decoration:underline; }
.gr-footer-menu li { margin:0; }
.gr-footer .sub-menu { list-style:none; margin:8px 0 8px 15px; }
.gr-top { position:fixed; bottom:20px; right:20px; font-size:13px!important; z-index:20; }
.gr-site [hidden] { display:none!important; }
.gr-skip { position:fixed; top:-100px; left:15px; background:#fff; padding:10px 16px; z-index:100; }
.gr-skip:focus { top:10px; }
.gr-site .comments-area { margin-top:30px; padding:0; background:#fff; }
.gr-site .comment-body { border:0; padding:20px 0; }
.gr-site .nav-links { display:flex; flex-wrap:wrap; justify-content:space-between; gap:20px; margin-top:30px; }
/* Image presentation with divider-free layout. */
.gr-site img { max-width:100%; height:auto; }
.gr-card-image { display:block; margin:-15px -15px 15px; overflow:hidden; border-radius:10px 10px 0 0; }
.gr-card-image img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.gr-featured { margin:0 0 25px; }
.gr-featured img { display:block; width:100%; height:auto; border-radius:10px; }
.gr-prose img { max-width:100%; height:auto; }
.gr-prose figure { margin:0 0 25px; }
.gr-meta .avatar { width:30px; height:30px; border-radius:50%; object-fit:cover; }
.gr-meta { align-items:center; }
.gr-sidebar a img { display:block; flex:0 0 75px; width:75px; height:75px; aspect-ratio:1; object-fit:cover; margin:0; border-radius:50%; }
.gr-site hr,.gr-site .wp-block-separator { display:none!important; }
.gr-site .gr-prose,.gr-site .gr-prose * { border-color:transparent; box-shadow:none!important; }
@media (max-width:1024px) { .gr-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .gr-reading-layout { grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:25px; } .gr-footer-grid { gap:25px; } }
@media (max-width:768px) {
    .gr-header-inner { gap:14px; }
    .gr-branding { flex:0 1 auto; min-width:0; }
    .gr-branding .custom-logo { width:180px; max-height:55px; }
    .gr-brand { font-size:19px; flex:1; }
    .gr-menu-toggle { display:block; font-size:14px!important; }
    .gr-navigation { width:100%; order:4; }
    .gr-navigation.gr-js-menu { display:none; }
    .gr-navigation.gr-js-menu.gr-is-open { display:block; }
    .gr-menu { display:block; padding:0 0 15px; }
    .gr-menu a { padding-block:9px; }
    .gr-menu .sub-menu { display:block; position:static; padding:0 0 0 18px; min-width:0; background:transparent; }
    .gr-reading-layout,.gr-footer-grid { grid-template-columns:minmax(0,1fr); }
    .gr-site h1 { font-size:28px; }
    .gr-prose h2 { font-size:25px; }
    .gr-sidebar { margin-top:15px; padding:0 0 40px; }
    .gr-footer-grid { gap:30px; }
    .gr-footer { padding-inline:0; }
    .gr-footer-intro { padding-top:0; }
    .gr-footer-grid>div:nth-child(2) { text-align:left; }
}
@media (max-width:540px) { .gr-grid,.gr-related .gr-grid { grid-template-columns:minmax(0,1fr); } .gr-wrap { padding-inline:16px; } .gr-card h2 { font-size:20px; } .gr-search-panel { right:16px; } }

/* Google preferred source callout below latest posts. */
.gr-preferred-source { margin-top:40px; text-align:center; }
.gr-preferred-source h3 { font-size:17px; line-height:1.8; font-weight:700; font-style:italic; margin:0 0 24px; }
.gr-preferred-source p { font-size:17px; line-height:1.8; margin:0 0 24px; overflow-wrap:anywhere; }
.gr-sidebar .gr-preferred-source-link { display:block; padding:0; background:transparent; border:0; border-radius:0; line-height:0; }
.gr-sidebar .gr-preferred-source-link img { display:block; flex:none; width:100%; max-width:676px; height:auto; aspect-ratio:676/213; object-fit:contain; border-radius:0; margin:0 auto; }
