@charset "UTF-8";
/*
Theme Name: GCF
Theme URI: https://georgiacharterfishing.com/
Author: Waterside Solutions
Author URI: https://watersidesolutions.com/
Description: Custom block theme for Georgia Charter Fishing (Capt. Greg Hildreth). Based on Twenty Twenty-Five, trimmed to what the site uses, with the GCF design system: brand colors, Open Sans and Playball, and the gcf- class library used by the GenerateBlocks layouts.
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.12
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gcf
Tags: full-site-editing, block-styles, custom-colors, custom-logo, editor-style, wide-blocks
*/

/* ---------- Base (from Twenty Twenty-Five) ---------- */
/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}


/* ---------- GCF design system ---------- */
/* gcf body size: 17px desktop, 16px phones */
@media (max-width: 767px) { body { font-size: 1rem; } }
/* normal wrapping for body copy (TT25's "pretty" wrapping leaves ragged early line breaks) */
p, li { text-wrap: wrap; }
/* ===== Georgia Charter Fishing class library (GenerateBlocks blocks reference these via Advanced > Additional CSS class) ===== */
:root { --gcf-brand:#3452ff; --gcf-brand-dark:#1f33c7; --gcf-ink:#1f2328; --gcf-mist:#f5f6f8; --gcf-line:#e3e5e8; --gcf-radius:8px; --gcf-shadow:0 2px 14px rgba(0,0,0,.07); }

/* layout glue */
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-site-blocks > header { position: sticky; top: 0; z-index: 50; background: #fff; box-shadow: 0 1px 0 rgba(0,0,0,.06); }
.admin-bar .wp-site-blocks > header { top: 32px; }

/* sections */
.gcf-section { padding-block: 6rem; }
.gcf-section--light { background-color: var(--gcf-mist); }
.gcf-section--photo { padding-block: 8rem; color: #fff; background-size: cover; background-position: center; }
.gcf-section:not(.gcf-section--light):not(.gcf-section--photo) + .gcf-section:not(.gcf-section--light):not(.gcf-section--photo),
.gcf-section--light + .gcf-section--light { padding-top: 0; }
.gcf-container { max-width: 1200px; margin-inline: auto; padding-inline: 1.5rem; }
@media (max-width: 767px) { .gcf-section { padding-block: 4rem; } .gcf-section--photo { padding-block: 5rem; } }

/* grids */
.gcf-grid { display: grid; gap: 2rem 3rem; align-items: start; }
.gcf-grid--center { align-items: center; }
.gcf-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gcf-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gcf-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gcf-grid--cards { gap: 1.5rem; margin-block: 1.5rem; }
.gcf-col { min-width: 0; }
@media (max-width: 1024px) { div.gcf-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { div.gcf-grid { grid-template-columns: 1fr; } div.gcf-grid--logos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; } }
.gcf-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; align-items: start; margin-top: 2rem; }
@media (max-width: 767px) { .gcf-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; } }

/* images */
.gcf-img { display: block; width: 100%; height: auto; border-radius: 0; }
.gcf-img--square { aspect-ratio: 1; height: auto; object-fit: cover; border-radius: 0; }
.gcf-img--fill { aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
/* photo frames: fill the frame; crop biased upward toward faces (:where keeps specificity low so .gcf-focus-- classes can override) */
:where(.gcf-gallery) .gcf-img--square, .gcf-img--fill, .gcf-card__img { aspect-ratio: 4 / 3; width: 100%; height: auto; object-fit: cover; object-position: 50% 30%; }
/* per-photo crop correction: add one in GenerateBlocks > Advanced > Additional CSS class */
.gcf-focus--top { object-position: 50% 10%; }
.gcf-focus--bottom { object-position: 50% 80%; }
.gcf-focus--left { object-position: 20% 50%; }
.gcf-focus--right { object-position: 80% 50%; }
.gcf-icon { display: block; width: 96px; height: auto; margin-bottom: 1rem; }
.gcf-logo { display: block; height: 64px; width: auto; max-width: 100%; margin-inline: auto; object-fit: contain; }

/* cards */
.gcf-card { background: #fff; border-radius: var(--gcf-radius); box-shadow: var(--gcf-shadow); overflow: hidden; color: var(--gcf-ink); }
.gcf-card--accent { padding: 1.5rem; border-top: 4px solid var(--gcf-brand); }
.gcf-card__img { display: block; border-radius: 0; }
.gcf-card__body { padding: 1.25rem 1.25rem 1.5rem; }
.gcf-card__title.gb-text { font-size: 1.2rem; margin: 0 0 .5rem; }
.gcf-card__title a { color: inherit; text-decoration: none; }
.gcf-card__title a:hover { color: var(--gcf-brand); }
.gcf-quote { margin: 0; padding: 2rem; display: flex; flex-direction: column; justify-content: space-between; }
.gcf-quote__name.gb-text { font-weight: 700; color: var(--gcf-brand); font-size: .9rem; margin: 0; }

/* text */
.gb-text { margin-top: 0; margin-bottom: 1.1rem; }
.gb-text:last-child { margin-bottom: 0; }
:is(h2,h3,h4).gb-text:not(:first-child) { margin-top: 2.25rem; }
.gcf-eyebrow { font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; line-height: 1.4; color: var(--gcf-brand); }
.gcf-eyebrow.gb-text { margin-bottom: .6rem; }
h3.gcf-eyebrow.gb-text:not(:first-child) { margin-top: 1.75rem; }
.gcf-eyebrow + :is(h1,h2,h3).gb-text { margin-top: 0; }
.gcf-lead.gb-text { font-size: 1.15rem; line-height: 1.65; }
.gcf-narrow { max-width: 640px; }
.gcf-small.gb-text { font-size: .95rem; }
.gcf-list { padding-left: 1.25rem; margin: 0 0 1.5rem; }
li.gb-text { margin-bottom: .45rem; }

/* buttons */
.gcf-btn.gb-text { display: inline-flex; align-items: center; margin-top: 1rem; padding: .9rem 1.6rem; border-radius: 4px; font-weight: 600; text-decoration: none; background: var(--gcf-brand); color: #fff; border: 2px solid var(--gcf-brand); transition: background .15s, color .15s; }
.gcf-btn.gb-text:hover { background: var(--gcf-brand-dark); border-color: var(--gcf-brand-dark); color: #fff; }
.gcf-btn--outline.gb-text { background: transparent; color: var(--gcf-brand); }
.gcf-btn--outline.gb-text:hover { background: var(--gcf-brand); color: #fff; }

/* photo sections and the video hero: light text */
.gcf-section--photo .gcf-eyebrow, .wp-block-cover .gcf-eyebrow { color: rgba(255,255,255,.85); }
.gcf-section--photo .gb-text a:not(.gcf-btn), .wp-block-cover .gb-text a:not(.gcf-btn) { color: #fff; }
.gcf-section--photo .gcf-btn--outline.gb-text, .wp-block-cover .gcf-btn--outline.gb-text { color: #fff; border-color: #fff; }
.gcf-section--photo .gcf-btn--outline.gb-text:hover, .wp-block-cover .gcf-btn--outline.gb-text:hover { background: #fff; color: var(--gcf-brand); }
.wp-block-cover.alignfull { min-height: 80vh; }

/* listings and map */
.gcf-place > * { display: block; }
.gcf-place strong { color: var(--gcf-ink); }
.gcf-map { display: block; width: 100%; height: 400px; border: 0; border-radius: var(--gcf-radius); margin-top: 1.5rem; }

/* FAQ (core Details) */
.wp-block-details { border-bottom: 1px solid var(--gcf-line); padding: 1rem 0; margin: 0; }
.wp-block-details summary { font-weight: 700; font-size: 1.05rem; cursor: pointer; }
.wp-block-details[open] summary { margin-bottom: .6rem; }

/* species calendar (core Table) */
.gcf-calendar { overflow-x: auto; margin: 1.5rem 0 0; }
.gcf-calendar table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: .9rem; background: #fff; border-radius: var(--gcf-radius); overflow: hidden; }
.gcf-calendar th, .gcf-calendar td { border: 0; border-bottom: 1px solid #e8eaed; padding: .55rem .35rem; text-align: center; }
.gcf-calendar thead th { background: #16191d; color: #fff; font-weight: 600; font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; }
.gcf-calendar td:first-child, .gcf-calendar th:first-child { text-align: left; padding-left: 1rem; font-weight: 700; }
.gcf-calendar td { color: var(--gcf-brand); }
.gcf-calendar td:first-child { color: inherit; }
.gcf-calendar figcaption { font-size: .85rem; opacity: .75; margin-top: .6rem; }

/* footer */
.wp-site-blocks > footer a { color: #cfd3d8; text-decoration: none; }
.wp-site-blocks > footer a:hover { color: #fff; }
.wp-site-blocks > footer .gcf-eyebrow { color: #fff; margin-bottom: .25rem; }
.wp-site-blocks > footer p { line-height: 2; }

/* navigation */
.wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--gcf-brand); }
.wp-block-navigation__submenu-container { border-radius: 6px; box-shadow: 0 8px 24px rgba(0,0,0,.12); padding: .5rem 0 !important; }

/* gravity forms */
#gform_wrapper_1 { --gf-color-primary: #3452ff; --gf-color-primary-rgb: 52,82,255; --gf-color-primary-darker: #1f33c7; --gf-ctrl-font-family: inherit; }

/* GCF usability and photography polish — 2026-10-01 */
:root { --gcf-radius:12px; --gcf-shadow:0 6px 22px rgba(19,43,55,.07); --gcf-sea:#12313e; }
html { scroll-padding-top:120px; }
.wp-site-blocks main { overflow-wrap:break-word; }
.gcf-section { padding-block:clamp(3rem,6vw,5rem); }
.gcf-section .gcf-container { width:100%; box-sizing:border-box; }
.gcf-section h2 { text-wrap:balance; line-height:1.2; }
.gcf-section h1 { text-wrap:balance; line-height:1.15; }
.gcf-section .gcf-eyebrow { line-height:1.6; }
.gcf-grid--cards { align-items:stretch; }
.gcf-card:has(.gcf-card__title a) { position:relative; display:flex; flex-direction:column; border:1px solid var(--gcf-line); transition:box-shadow .2s,border-color .2s; }
.gcf-card__body { flex:1; padding:1.4rem; }
.gcf-card__title.gb-text { margin:0 0 .65rem !important; line-height:1.35; }
.gcf-card__title a::after { content:""; position:absolute; inset:0; border-radius:var(--gcf-radius); }
.gcf-card:has(.gcf-card__title a):hover { border-color:var(--gcf-brand); box-shadow:0 10px 28px rgba(19,43,55,.13); }
.gcf-card:has(.gcf-card__title a):focus-within { outline:3px solid var(--gcf-brand); outline-offset:4px; }
.gcf-card__body p { font-size:.95rem; line-height:1.65; }
.gcf-quote { padding:1.75rem; line-height:1.75; border:1px solid var(--gcf-line); }
.gcf-quote__name { padding-top:1rem; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline:3px solid var(--gcf-brand); outline-offset:4px; }
.gcf-btn.gb-text { min-height:48px; box-sizing:border-box; justify-content:center; line-height:1.4; }
.wp-block-details summary { padding:.35rem 1.5rem .35rem 0; min-height:44px; box-sizing:border-box; line-height:1.5; }
.wp-block-details p { max-width:75ch; line-height:1.75; }
.gcf-calendar td:first-child { position:sticky; left:0; background:#fff; box-shadow:2px 0 4px rgba(0,0,0,.05); }
.gcf-calendar thead th:first-child { position:sticky; left:0; z-index:1; background:#16191d; }
.gcf-calendar figcaption { opacity:1; color:#525b65; line-height:1.6; }
#gform_wrapper_1 input:not([type=hidden]):not([type=submit]), #gform_wrapper_1 select { min-height:48px; }
#gform_wrapper_1 textarea { min-height:150px; }
#gform_wrapper_1 .gform_button { min-height:48px; }
.gcf-contact-intro { border-left:3px solid var(--gcf-brand); padding-left:1.25rem; margin-bottom:2rem; }
.gcf-contact-actions { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; align-items:center; }
/* Keep contact buttons aligned despite inherited block margins. */
.gcf-contact-actions > .gcf-btn { margin:0; }
.gcf-trip-facts { display:flex; flex-wrap:wrap; gap:.6rem 1.5rem; margin:1.5rem 0; font-size:.95rem; }
.gcf-locations { border-top:1px solid var(--gcf-line); padding-top:1.25rem; margin-top:1.5rem; }
@media (max-width:1024px) and (min-width:768px) { .gcf-grid--3 { gap:1.5rem; } }
@media (max-width:767px) {
 html { scroll-padding-top:105px; }
 .gcf-section { padding-block:3rem; }
 .gcf-section .gcf-container { padding-inline:1.25rem; }
 .gcf-grid { gap:2rem; }
 .gcf-quote { padding:1.4rem; }
 .gcf-calendar::before { content:"Swipe sideways to see every month →"; display:block; margin-bottom:.75rem; font-size:.85rem; font-weight:600; color:#525b65; }
 .wp-block-navigation__responsive-container.is-menu-open { padding:1.5rem; }
 .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { box-shadow:none; border-left:2px solid var(--gcf-line); border-radius:0; padding-left:1rem !important; margin-left:.25rem; }
 .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { padding-block:.45rem; }
 .admin-bar .wp-site-blocks > header { top:46px; }
 .gcf-map { height:300px; }
}
@media (prefers-reduced-motion:reduce) { .gcf-card, .gcf-btn { transition:none !important; } }


/* Homepage and compact photo controls */
.gcf-card__body::after { content:"Explore trip →"; display:block; color:var(--gcf-brand); font-size:.88rem; font-weight:600; margin-top:1rem; }

/* Restore the original full-width photography and keep section boundaries flush. */
.wp-block-post-content > .gcf-section,
.wp-block-post-content > .wp-block-cover { margin-block-start:0; margin-block-end:0; }
.gcf-section.gcf-section--photo { background-size:cover; background-position:center top; padding-block:clamp(5rem,9vw,8rem); color:#fff; }
.gcf-section--photo > .gcf-container { position:relative; }
.gcf-section--photo h1 { font-size:clamp(2.5rem,4.5vw,4rem); line-height:1.15; }
.gcf-section--photo .gcf-lead { max-width:640px; }
.gcf-section--photo::after { content:none; }
.gcf-card, .gcf-card__img, .gcf-card__title a::after { border-radius:0; }
.wp-block-cover .gcf-container { width:100%; box-sizing:border-box; }
.wp-block-cover h1 { max-width:900px; font-size:clamp(2.75rem,5vw,4.25rem); line-height:1.15; }
.wp-block-cover .gcf-lead { max-width:680px; }
.wp-block-cover__video-background { object-position:center; }
@media(max-width:767px){
 .gcf-section.gcf-section--photo { padding-block:4rem; background-position:center top; }
 .gcf-section--photo h1 { font-size:2.6rem; }
 .wp-block-cover.alignfull { min-height:70svh; padding-block:3rem; }
 .wp-block-cover h1 { font-size:2.75rem; }
}

/* Full photographic frames: never crop the subject to fill a shallow banner. */
.gcf-section.gcf-section--photo { aspect-ratio:1024/683; min-height:0; box-sizing:border-box; display:flex; align-items:center; background-size:contain; background-position:center; background-repeat:no-repeat; background-color:#12313e; padding-block:3rem; }
.gb-element-fe2687ef.gcf-section--photo { aspect-ratio:1024/712; }
.gb-element-668c6013.gcf-section--photo, .gb-element-4b753f26.gcf-section--photo, .gb-element-8f155baf.gcf-section--photo { aspect-ratio:1024/563; }
@media(max-width:767px){ .gcf-section.gcf-section--photo { aspect-ratio:auto; min-height:calc(100vw * 683 / 1024); padding-block:2.5rem; background-position:center; } }

/* Keep phone navigation and footer text away from screen edges. */
@media(max-width:767px){
 .wp-site-blocks > header > .wp-block-group, .wp-site-blocks > footer > .wp-block-group { padding-inline:1.25rem; box-sizing:border-box; }
 .wp-site-blocks > header .wp-block-buttons .wp-block-button__link { padding-inline:1rem; }
}

/* Interior opening heroes — 2026-10-05. Medium desktop banners; complete photos above text on phones. */
body:not(.home) .wp-block-post-content > .gcf-section.gcf-section--photo:first-child { aspect-ratio:auto; height:auto; min-height:clamp(450px,43vw,550px); padding-block:3rem; background-size:cover; background-position:50% var(--gcf-hero-y,35%); }
body.page-id-153 { --gcf-hero-image:url("https://newgcf.watersidesolutions.com/wp-content/uploads/2026/10/gcf-opt-about-2-1-1024x683-1.webp"); --gcf-hero-ratio:0.6669921875; }
body.page-id-335 { --gcf-hero-image:url("https://newgcf.watersidesolutions.com/wp-content/uploads/2026/10/gcf-opt-jekyll-island-fishing-charters-17-scaled-1-1024x712-1.webp"); --gcf-hero-ratio:0.6953125; }
body.page-id-154 { --gcf-hero-image:url("https://newgcf.watersidesolutions.com/wp-content/uploads/2026/10/gcf-opt-charter-info-2-1-1024x683-1.webp"); --gcf-hero-ratio:0.6669921875; }
body.page-id-155 { --gcf-hero-image:url("https://newgcf.watersidesolutions.com/wp-content/uploads/2026/10/gcf-opt-coastal-georgia-1024x683-1.webp"); --gcf-hero-ratio:0.6669921875; }
body.page-id-111 { --gcf-hero-image:url("https://newgcf.watersidesolutions.com/wp-content/uploads/2026/10/gcf-opt-contact-1024x683-1.webp"); --gcf-hero-ratio:0.6669921875; }
body.page-id-148 { --gcf-hero-image:url("https://newgcf.watersidesolutions.com/wp-content/uploads/2026/10/gcf-opt-family-fishing-1024x683-1.webp"); --gcf-hero-ratio:0.6669921875; }
body.page-id-260 { --gcf-hero-image:url("https://newgcf.watersidesolutions.com/wp-content/uploads/2026/10/gcf-opt-gallery-47-1024x683-1.webp"); --gcf-hero-ratio:0.6669921875; }
body.page-id-152 { --gcf-hero-image:url("https://newgcf.watersidesolutions.com/wp-content/uploads/2026/10/gcf-opt-inshore-fishing-1024x683-1.webp"); --gcf-hero-ratio:0.6669921875; }
body.page-id-101 { --gcf-hero-image:url("https://newgcf.watersidesolutions.com/wp-content/uploads/2026/10/gcf-opt-gallery-26.webp"); --gcf-hero-ratio:0.5498046875; }
body.page-id-149 { --gcf-hero-image:url("https://newgcf.watersidesolutions.com/wp-content/uploads/2026/10/gcf-opt-marsh-hen-hunts-1024x683-1.webp"); --gcf-hero-ratio:0.6669921875; }
body.page-id-151 { --gcf-hero-image:url("https://newgcf.watersidesolutions.com/wp-content/uploads/2026/10/gcf-opt-offshore-fishing-1024x683-1.webp"); --gcf-hero-ratio:0.6669921875; }
body.page-id-150 { --gcf-hero-image:url("https://newgcf.watersidesolutions.com/wp-content/uploads/2026/10/gcf-opt-tarpon-fishing-1024x683-1.webp"); --gcf-hero-ratio:0.6669921875; }
body.page-id-110 { --gcf-hero-image:url("https://newgcf.watersidesolutions.com/wp-content/uploads/2026/10/gcf-opt-home-big-redfish-1-1024x683-1.webp"); --gcf-hero-ratio:0.6669921875; }
@media (max-width:767px) {
body:not(.home) .wp-block-post-content > .gcf-section.gcf-section--photo:first-child { display:block; min-height:0; padding:calc(100vw * var(--gcf-hero-ratio)) 0 0; background-image:var(--gcf-hero-image) !important; background-size:100% auto; background-position:center top; background-color:#12313e; }
body:not(.home) .wp-block-post-content > .gcf-section.gcf-section--photo:first-child > .gcf-container { background:#12313e; padding-block:1.5rem; }
}

/* Photo-specific desktop focal points. */
body.page-id-101 { --gcf-hero-y:0%; }
body.page-id-110 { --gcf-hero-y:0%; }
body.page-id-111 { --gcf-hero-y:20%; }
body.page-id-148 { --gcf-hero-y:0%; }
body.page-id-149 { --gcf-hero-y:15%; }
body.page-id-150 { --gcf-hero-y:45%; }
body.page-id-151 { --gcf-hero-y:0%; }
body.page-id-152 { --gcf-hero-y:0%; }
body.page-id-153 { --gcf-hero-y:0%; }
body.page-id-154 { --gcf-hero-y:0%; }
body.page-id-155 { --gcf-hero-y:80%; }
body.page-id-260 { --gcf-hero-y:70%; }
body.page-id-335 { --gcf-hero-y:10%; }
