/*
Theme Name:  Wellington Fish
Theme URI:   https://wellingtonfishing.co.nz
Description: Wellington Fishing website theme.
Version:     1.0.0
Author:      Strength9
Author URI:  https://strength9.co.uk
License:     GPL-2.0-or-later
Text Domain: wellington-fish
*/

@font-face {font-family: 'Clarendon Text'; src: url('assets/fonts/ClarendonTextRegular.woff2') format('woff2'), url('assets/fonts/ClarendonTextRegular.woff') format('woff'); font-style: normal; font-weight: normal; font-display: swap;}

:root {
	/* Colours */
	--color-green:       #004A33;
	--color-green-dark:  rgb(26, 55, 41);
	--color-gold:        #C49A6C;
	--color-background:  #F6F2EB;
	--color-surface:     #fdfefc;
	--color-text:        #1a1a1a;
	--color-text-muted:  #6b7280;
	--color-border:      rgba(0, 74, 51, 0.18);
	--color-white:       #ffffff;

	/* Typography */
	--font-heading: 'Clarendon Text', Georgia, serif;
	--font-body:    'Montserrat', system-ui, sans-serif;

	--text-xs:   0.75rem;
	--text-sm:   0.875rem;
	--text-base: 1rem;
	--text-lg:   1.125rem;
	--text-xl:   1.25rem;
	--text-2xl:  1.5rem;
	--text-3xl:  1.875rem;
	--text-4xl:  2.25rem;
	--text-5xl:  3rem;

	--leading-tight:  1.25;
	--leading-normal: 1.6;
	--leading-loose:  1.8;

	--tracking-wide:   0.05em;
	--tracking-wider:  0.1em;
	--tracking-widest: 0.2em;

	/* Spacing */
	--space-1:  0.25rem;
	--space-2:  0.5rem;
	--space-3:  0.75rem;
	--space-4:  1rem;
	--space-5:  1.25rem;
	--space-6:  1.5rem;
	--space-8:  2rem;
	--space-10: 2.5rem;
	--space-12: 3rem;
	--space-16: 4rem;
	--space-20: 5rem;
	--space-24: 6rem;

	/* Borders */
	--border-width:     1px;
	--border-width-md:  2px;
	--border-width-lg:  4px;
	--border-color:     var(--color-border);
	--border-radius:    3px;
	--border-radius-lg: 8px;

	/* Shadows */
	--shadow-sm: 0 1px 3px rgb(0 0 0 / 0.08);
	--shadow:    0 4px 12px rgb(0 0 0 / 0.10);
	--shadow-lg: 0 8px 24px rgb(0 0 0 / 0.12);

	/* Layout */
	--max-width:     1500px;
	--content-width: 740px;
	--gutter:        var(--space-6);
	--gap:           50px;
	--gap-lg:        100px;

	/* Transitions */
	--transition: all ease-in-out .3s;
}

/* Base */
*, *::before, *::after {box-sizing: border-box;}
html {scroll-behavior: smooth;}
body {margin: 0; background-color: var(--color-surface); color: var(--color-text); font-family: var(--font-body); font-size: var(--text-base); line-height: var(--leading-normal);}
img {max-width: 100%; height: auto; display: block;}
a {color: inherit; text-decoration: none;}
.entry-content a:not([class]), .wfb-text-image__body a:not([class]) {color: var(--color-gold); text-decoration: none; transition: color var(--transition);}
.entry-content a:not([class]):hover, .wfb-text-image__body a:not([class]):hover {color: var(--color-green);}
address {font-style: normal;}
.container {max-width: var(--max-width); margin-inline: auto; padding-inline: var(--gutter);}
.bg-light {background-color: var(--color-background);}
.eyebrow {font-family: var(--font-body, sans-serif); font-size: clamp(0.85rem, 2.5vw, 1rem); font-weight: 400; letter-spacing: 2px; text-transform: uppercase; color: var(--color-gold); margin: 0 0 5px;}
.intro-lead {color: var(--color-white); opacity: .8; font-size: clamp(16px, 2.5vw, 19px); text-align: center; max-width: 600px; margin: 10px auto 0; line-height: 1.6;}

/* Fonts */
p, address {color: var(--color-green); font-size: clamp(0.9rem, 2.5vw, 1rem); margin: 0 0 20px; line-height: 1.6;}
h2, h3 {font-family: var(--font-heading, serif); font-size: clamp(1.8rem, 3.5vw, 2.75rem); font-weight: 400; color: var(--color-green, #004A33); line-height: 1.3; margin: 0 0 20px;}
h2 {font-size: clamp(1.5rem, 3.5vw, 2.75rem);}

/* Header */
.site-header {background-color: var(--color-green); width: 100%; position: sticky; top: 0; z-index: 100;}
.site-header__inner {max-width: var(--max-width); margin-inline: auto; padding-inline: var(--gutter); padding-block: var(--space-6); display: flex; align-items: center; justify-content: space-between; gap: var(--space-8);}

/* Logo */
.site-logo {display: flex; align-items: center; text-decoration: none; flex-shrink: 0;}
.site-logo__img {height: clamp(20px, 12vw, 60px); width: auto; display: block;}

/* Primary nav */
.site-nav__list {list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 20px;}
.site-nav__list li {margin: 0;}
.site-nav__list a {font-family: var(--font-body); font-size: var(--text-sm); font-weight: 400; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--color-white); text-decoration: none; transition: var(--transition); white-space: nowrap;}
.site-nav__list a:hover {color: var(--color-gold); transition: var(--transition);}
.site-nav__list li:last-child > a {background-color: var(--color-green-dark); padding: 16px 28px; border-radius: 0; transition: var(--transition); font-size: 0.75rem;}
.site-nav__list li:last-child > a:hover {background-color: var(--color-gold); color: var(--color-surface);}

/* Hamburger toggle — hidden on desktop */
.nav-toggle {display: none; flex-direction: column; justify-content: center; gap: 5px; background: none; border: none; cursor: pointer; padding: var(--space-2); flex-shrink: 0;}
.nav-toggle__bar {display: block; width: 24px; height: 3px; background-color: var(--color-white); border-radius: 1px; transition: transform var(--transition), opacity var(--transition);}

/* Bars animate to × when open */
.nav-toggle.is-active .nav-toggle__bar:nth-child(1) {transform: translateY(8px) rotate(45deg);}
.nav-toggle.is-active .nav-toggle__bar:nth-child(2) {opacity: 0;}
.nav-toggle.is-active .nav-toggle__bar:nth-child(3) {transform: translateY(-8px) rotate(-45deg);}

/* Mobile nav */
@media (max-width: 56.25em) { /* 900px */
	.nav-toggle {display: flex; position: relative; z-index: 201;}
	.site-nav {display: none; position: fixed; inset: 0; z-index: 99; background-color: var(--color-green); overflow-y: auto;}
	.site-nav.is-open {display: flex; justify-content: center;}
	.site-nav__list {flex-direction: column; align-items: center; padding: 150px var(--space-8);}
	.site-nav__list li {border-bottom: none; text-align: center;}
	.site-nav__list a {font-size: clamp(18px, 3.5vw, 23px); letter-spacing: var(--tracking-widest); display: block;}
	.site-nav__list li:last-child > a {padding: var(--space-4) var(--space-10); margin-top: var(--space-4);}
}

/* Footer */
.site-footer {background-color: var(--color-green); width: 100%; color: var(--color-white);}
.site-footer__inner {max-width: var(--max-width); margin-inline: auto; padding-inline: var(--gutter); padding-block: var(--space-24); display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: var(--space-12); align-items: start;}

/* Footer brand/logo column */
.site-footer__brand {display: flex; flex-direction: column; align-items: flex-start;}
.site-footer__logo svg {width: auto; height: 140px; fill: var(--color-white); display: block;}

/* Footer columns */
.site-footer__heading {font-family: var(--font-heading); font-size: var(--text-xl); font-weight: normal; letter-spacing: 0; text-transform: none; color: var(--color-white); margin: 0 0 var(--space-4) 0;}
.site-footer__col p, .site-footer__col address {font-family: var(--font-body); font-size: var(--text-sm); font-style: normal; line-height: var(--leading-loose); color: rgba(255, 255, 255, 0.85); margin: 0;}
.site-footer__col .site-footer__contact-item {display: flex; align-items: center; gap: var(--space-3); margin: 0 0 15px 0;}
.site-footer__contact-icon {display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(0, 0, 0, 0.25); flex-shrink: 0;}
.site-footer__contact-icon svg {width: 15px; height: 15px; fill: var(--color-white);}
.site-footer__contact-item a {font-family: var(--font-body); font-size: var(--text-sm); color: rgba(255, 255, 255, 0.85); text-decoration: none; transition: all ease-in-out .3s;}
.site-footer__contact-item a:hover {color: var(--color-gold); transition: all ease-in-out .3s;}

/* Footer nav */
.site-footer__nav {list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2);}
.site-footer__nav li {margin: 0;}
.site-footer__nav a {font-family: var(--font-body); font-size: var(--text-sm); color: var(--color-white); opacity: 0.85; text-decoration: none; transition: all ease-in-out .3s;}
.site-footer__nav a:hover {opacity: 1; color: var(--color-gold); transition: all ease-in-out .3s;}

/* Mobile footer */
@media (max-width: 56.25em) { /* 900px */
	.site-footer__inner {grid-template-columns: 1fr; gap: var(--space-6); text-align: center;}
	.site-footer__brand {align-items: center;}
	.site-footer__logo svg {height: 65px;}
	.site-footer__col .site-footer__contact-item {justify-content: center;}
	.site-footer__nav {display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2) var(--space-6); justify-items: center;}
}

@media (max-width: 500px) {
	.site-footer__nav {grid-template-columns: 1fr;}
}

/* Footer bottom bar */
.site-footer__bottom {border-top: var(--border-width) solid rgba(255, 255, 255, 0.15);}
.site-footer__bottom-inner {max-width: var(--max-width); margin-inline: auto; padding-inline: var(--space-5); padding-block: var(--space-6);}
.site-footer__bottom p {font-family: var(--font-body); font-size: var(--text-xs); color: rgba(255, 255, 255, 0.5); margin: 0; text-align: center;}
.site-footer__bottom p a {color: var(--color-gold); text-decoration: none; transition: all ease-in-out .3s;}
.site-footer__bottom p a:hover {color: var(--color-white); transition: all ease-in-out .3s;}

/* Videos archive */
.wfv-archive__inner {max-width: var(--max-width, 1500px); margin: 0 auto; padding-inline: var(--gutter, 1.5rem);}

/* Hero */
.wfv-archive__hero {padding-top: clamp(4rem, 10vw, 7rem); padding-bottom: 0;}
.wfv-archive__header {margin-bottom: 2rem;}
.wfv-archive__eyebrow {font-family: var(--font-body); font-size: 1rem; font-weight: 400; letter-spacing: var(--tracking-widest); text-transform: uppercase; color: var(--color-gold); margin: 0 0 0.5rem;}
.wfv-archive__heading {font-family: var(--font-heading); font-size: clamp(2rem, 4vw, 3rem); color: var(--color-green); margin: 0; line-height: 1.15;}
.wfv-archive__featured-grid {display: grid; grid-template-columns: 3fr 2fr; column-gap: 2rem; align-items: stretch;}
.wfv-archive__featured-grid--full {grid-template-columns: 1fr;}
.wfv-archive__primary {display: flex; flex-direction: column;}
.wfv-archive__primary .wfv-card, .wfv-archive__primary .wfv-card__poster {flex: 1; height: 100%;}
.wfv-archive__sidebar {display: flex; flex-direction: column; gap: 2rem;}
.wfv-archive__sidebar .wfv-card {flex: 1;}
.wfv-archive__sidebar .wfv-card__poster {aspect-ratio: unset; height: 100%;}

/* Grid */
.wfv-archive__grid-section {padding-top: clamp(4rem, 10vw, 7rem); padding-bottom: var(--wfb-section-pad, 80px);}
.wfv-archive__grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; margin-bottom: 3rem; padding-top: 25px;}

/* Pagination */
.wfv-archive__grid-section .nav-links {display: flex; justify-content: center; gap: 0.5rem;}
.wfv-archive__grid-section .page-numbers {display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; padding: 0.4em 0.75em; font-family: var(--font-body); font-size: var(--text-sm); font-weight: 600; text-decoration: none; color: var(--color-green); border: 1px solid var(--color-border); transition: background var(--transition), color var(--transition);}
.wfv-archive__grid-section .page-numbers.current, .wfv-archive__grid-section .page-numbers:hover {background: var(--color-green); color: #fff; border-color: var(--color-green);}

/* Responsive */
@media (max-width: 56.25em) { /* 900px */
	.wfv-archive__featured-grid {grid-template-columns: 1fr; gap: 1.5rem;}
	.wfv-archive__grid {grid-template-columns: repeat(2, 1fr);}
}

@media (max-width: 37.5em) { /* 600px */
	.wfv-archive__grid {grid-template-columns: 1fr;}
}

/* Contact page */
.wf-contact__hero {background-color: var(--color-green); padding-block: 64px;}
.wf-contact__hero-inner {max-width: 1134px; margin: 0 auto; padding: 0 var(--gutter, 1.5rem);}
.wf-contact__eyebrow {font-family: var(--font-body); font-size: 0.7rem; font-weight: 400; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-gold); margin: 0 0 14px;}
.wf-contact__heading {font-family: var(--font-heading); font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 400; color: #fff; margin: 0; line-height: 1.05; text-transform: capitalize;}
.wf-contact__body {padding-block: clamp(80px, 20vw, 125px);}
.wf-contact__inner {max-width: var(--max-width, 1500px); margin: 0 auto; padding: 0 var(--gutter, 1.5rem); display: grid; grid-template-columns: 1fr 340px; gap: 10rem; align-items: start;}
.form-heading {padding-bottom: 15px; max-width: 75%;}

/* Sidebar */
.wf-contact__sidebar {padding-top: 3.75rem;}
.wf-contact__detail {margin-bottom: 2rem;}
.wf-contact__detail-heading {font-family: var(--font-body); font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-widest, 0.2em); text-transform: uppercase; color: var(--color-gold); margin: 0 0 0.5rem;}
.wf-contact__detail a {color: var(--color-green); text-decoration: none; transition: color 0.2s;}
.wf-contact__detail a:hover {color: var(--color-gold);}
.wf-contact__privacy {font-size: var(--text-sm); padding-top: 2rem; border-top: 1px solid #d9d3c8;}
.wf-contact__privacy a {color: var(--color-green); text-decoration: underline;}

/* WPForms */
.wf-contact .wpforms-container {margin: 0; padding: 0; --wpforms-field-background-color: #dfe7e3; --wpforms-field-border-style: none; --wpforms-field-border-size: 0px; --wpforms-field-border-radius: 0px; --wpforms-field-text-color: var(--color-text); --wpforms-button-background-color: var(--color-green); --wpforms-button-border-style: solid; --wpforms-button-border-size: 2px; --wpforms-button-border-color: var(--color-green); --wpforms-button-border-radius: 0px; --wpforms-button-text-color: var(--color-green);}
.wf-contact .wpforms-field-container {display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem;}
.wf-contact .wpforms-field {grid-column: 1 / -1; margin-bottom: 1.25rem; padding: 0;}
.wf-contact .wpforms-field-email, .wf-contact .wpforms-field-phone {grid-column: span 1;}
.wf-contact .wpforms-field-label {position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;}
.wf-contact .wpforms-field-radio .wpforms-field-label {position: static; width: auto; height: auto; margin: 0 0 0.75rem; overflow: visible; clip: auto; white-space: normal; font-size: var(--text-sm); font-weight: 600; color: var(--color-text); display: block;}
.wf-contact .wpforms-field input:not([type="radio"]):not([type="checkbox"]):not([type="file"]):not([type="submit"]), .wf-contact .wpforms-field textarea {width: 100% !important; max-width: 100% !important; font-family: var(--font-body) !important; font-size: var(--text-base) !important; color: var(--color-text) !important; border: none !important; border-radius: 0 !important; padding: 1rem 1.25rem !important; outline: none; transition: background 0.2s, box-shadow 0.2s;}
.wf-contact .wpforms-field input:not([type="radio"]):not([type="checkbox"]):not([type="file"]):not([type="submit"]):focus, .wf-contact .wpforms-field textarea:focus, .wf-contact .wpforms-field select:focus {box-shadow: inset 0 -2px 0 var(--color-green) !important;}
.wf-contact .wpforms-field input::placeholder, .wf-contact .wpforms-field textarea::placeholder {color: var(--color-text); opacity: 0.6;}
.wf-contact .wpforms-field textarea {min-height: 160px !important; resize: vertical;}

/* Select */
.wf-contact .wpforms-field select {width: 100% !important; max-width: 100% !important; font-family: var(--font-body) !important; font-size: var(--text-base) !important; font-weight: 400 !important; color: rgba(26, 26, 26, 0.6) !important; background-color: #dfe7e3 !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%231a1a1a' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 1.25rem center !important; border: none !important; border-radius: 0 !important; height: auto !important; padding: 1rem 2.5rem 1rem 1.25rem !important; cursor: pointer; appearance: none !important; -webkit-appearance: none !important; outline: none; transition: box-shadow 0.2s;}

/* Full colour once a real option is picked */
.wf-contact .wpforms-field select:has(option:not([value=""]):checked) {color: var(--color-text) !important;}

/* File upload — match placeholder styling */
.wf-contact .wpforms-uploader .dz-message, .wf-contact .wpforms-uploader .dz-message .modern-title, .wf-contact .wpforms-uploader .dz-message .modern-hint, .wf-contact .wpforms-uploader .dz-message span {font-family: 'Montserrat', system-ui, sans-serif !important; font-size: var(--text-base) !important; font-weight: 400 !important; color: rgba(26, 26, 26, 0.6) !important;}

/* Name fieldset reset */
.wf-contact .wpforms-field-name fieldset {margin: 0 !important; padding: 0 !important; border: 0 !important; min-width: 0 !important; width: 100% !important;}

/* Clearfix pseudos would become grid items */
.wf-contact .wpforms-field-row::before, .wf-contact .wpforms-field-row::after {display: none !important;}

/* Name field internal 2-col */
.wf-contact .wpforms-field-row {display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 1.5rem !important; width: 100% !important; max-width: 100% !important; padding: 0 !important; margin: 0 !important; container-type: normal !important;}
.wf-contact .wpforms-field-row-block {width: 100% !important; max-width: none !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important;}
.wf-contact .wpforms-field-sublabel {display: none;}

/* Radio list — checked dot colour comes from --wpforms-button-background-color */
.wf-contact .wpforms-field-radio ul {margin: 0; padding: 0;}
.wf-contact .wpforms-field-radio li {display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; list-style: none;}
.wf-contact .wpforms-field-radio input[type="radio"] {cursor: pointer; flex-shrink: 0; margin: 0;}

/* Submit — matches wfb-btn--primary */
.wf-contact .wpforms-submit-container {grid-column: 1 / -1; display: flex; justify-content: flex-end; margin-top: 1rem; padding: 0;}
.wf-contact .wpforms-submit {font-family: var(--font-body) !important; font-size: 0.75rem !important; font-weight: 400 !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; color: #fff !important; background: var(--color-green) !important; border: none !important; border-radius: 0 !important; padding: 16px 28px !important; cursor: pointer; transition: background-color 0.2s ease !important; height: auto !important;}
.wf-contact .wpforms-submit:hover {background: var(--color-gold) !important; color: #fff !important;}

/* Confirmation */
.wf-contact .wpforms-confirmation-container-full {background: #f0f7f4; border-left: 4px solid var(--color-green); padding: 1.5rem; color: var(--color-green);}

/* Validation */
.wf-contact .wpforms-field.wpforms-has-error :is(input, select, textarea) {box-shadow: inset 0 -2px 0 #c0392b !important;}
.wf-contact label.wpforms-error {display: block; color: #c0392b; font-size: var(--text-sm); margin-top: 0.25rem;}
.wf-contact .wpforms-render-modern .wpforms-field-container {margin: 0;}

/* Responsive */
@media (max-width: 56.25em) { /* 900px */
	.wf-contact__inner {grid-template-columns: 1fr; gap: 3rem;}
	.wf-contact__sidebar {border-top: 1px solid #d9d3c8; padding-top: 2rem;}
}

@media (max-width: 37.5em) { /* 600px */
	.wf-contact__hero {padding-block: 44px;}
	.wf-contact .wpforms-field-email, .wf-contact .wpforms-field-phone {grid-column: 1 / -1;}
	.wf-contact .wpforms-field-row {grid-template-columns: 1fr !important; gap: 0.75rem !important;}
	.form-heading {padding-bottom: 5px; max-width: 100%;}
	
}