/*
Theme Name: Maynard & Veiga
Description: A portable, native-block accounting and advisory website inspired by New Bedford's waterfront.
Version: 1.2.0
Requires at least: 6.6
Requires PHP: 8.1
Author: Southcoast Technologies LLC
License: GPL-2.0-or-later
Text Domain: maynard-veiga
*/
:root {
  --navy:#142f41;
  --cream:#f4f0e7;
  --gold:#b79858;
  --ink:#344d5b;
  --line:#ddd8cc;
  --white:#fff}
* {
  box-sizing:border-box}
html {
  scroll-behavior:smooth;
  scroll-padding-top:30px}
body {
  margin:0;
  color:var(--navy);
  background:white;
  font:16px/1.75 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
h1,h2,h3,.brand-name {
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  line-height:1.12;
  letter-spacing:-.035em}
h1 {
  font-size:clamp(2.9rem,5.4vw,5rem);
  margin:20px 0 28px}
h2 {
  font-size:clamp(2rem,3.5vw,3.25rem);
  margin:12px 0 24px}
h3 {
  font-size:1.6rem;
  margin:14px 0}
p {
  margin:0 0 20px}
a {
  color:inherit;
  text-underline-offset:5px}
a:hover {
  text-decoration-thickness:2px}
img {
  display:block;
  max-width:100%;
  height:auto}
button,input,textarea,select {
  font:inherit}
button,a,input,textarea,select {
  touch-action:manipulation}
:focus-visible {
  outline:3px solid #9c7027;
  outline-offset:5px}
.container,.site-header-inner,.footer-inner {
  width:min(1200px,calc(100% - 64px));
  margin-inline:auto}
.section {
  padding:88px 0}
.eyebrow {
  font-size:.72rem;
  line-height:1.5;
  letter-spacing:.18em;
  font-weight:700;
  text-transform:uppercase;
  color:#796031;
  margin-bottom:18px}
.lead {
  font-size:1.18rem;
  line-height:1.7;
  max-width:640px}
.button,.wp-block-button__link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  background:var(--navy);
  color:#fff;
  min-height:48px;
  padding:12px 23px;
  border:1px solid var(--navy);
  text-decoration:none;
  font-size:.86rem;
  font-weight:600;
  border-radius:2px;
  cursor:pointer}
.button:hover {
  background:#244b60}
.button-gold {
  background:var(--gold);
  border-color:var(--gold);
  color:#142f41}
.button-outline {
  background:transparent;
  color:inherit;
  border-color:currentColor}
.text-link {
  font-size:.86rem;
  font-weight:650;
  text-decoration:none;
  display:inline-block;
  border-bottom:1px solid var(--gold);
  padding:5px 0}
.text-link::after {
  content:' ↗';
  padding-left:12px}
.actions,.client-links {
  display:flex;
  flex-wrap:wrap;
  gap:12px}
.skip-link {
  position:absolute;
  top:-100px;
  left:16px;
  z-index:100;
  background:white;
  padding:12px}
.skip-link:focus {
  top:10px}
.site-header {
  background:#fff;
  border-bottom:1px solid var(--line)}
.site-header-inner {
  display:flex;
  align-items:center;
  gap:30px;
  min-height:108px}
.brand {
  display:block;
  text-decoration:none;
  flex-shrink:0}
.brand-name {
  display:block;
  font-size:1.8rem;
  letter-spacing:-.06em}
.brand-subtitle {
  display:block;
  font-size:.56rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  margin-top:8px}
.custom-logo {
  max-width:240px;
  max-height:72px;
  width:auto}
.header-nav {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:26px}
.header-nav ul {
  display:flex;
  list-style:none;
  gap:24px;
  padding:0;
  margin:0}
.header-nav a {
  font-size:.82rem;
  text-decoration:none}
.header-nav a[aria-current=page] {
  border-bottom:2px solid var(--gold);
  padding-bottom:6px}
.header-nav .button {
  font-size:.72rem;
  padding:9px 13px;
  min-height:42px}
.pending-label {
  font-size:.58rem;
  display:block;
  font-weight:400;
  line-height:1.3;
  letter-spacing:.04em}
.client-links .button {
  flex-direction:column;
  gap:1px}
.menu-toggle {
  display:none}
.hero {
  background:var(--navy);
  color:white;
  padding:0;
  overflow:hidden;
  position:relative}
.hero>.container {
  display:grid;
  grid-template-columns:1fr 1fr;
  width:100%;
  max-width:1600px;
  align-items:stretch}
.hero-copy {
  padding:94px 52px 98px max(32px,calc((100vw - 1200px)/2));
  position:relative;
  z-index:1}
.hero .eyebrow {
  color:#d1b980}
.hero h1 {
  width:660px;
  max-width:120%;
  text-shadow:0 1px 20px #142f4144}
.hero .lead {
  color:#e0e6e9}
.hero .button {
  background:var(--gold);
  border-color:var(--gold);
  color:var(--navy)}
.hero .button-outline {
  background:transparent;
  border-color:#a9b9c2;
  color:white}
.harbor-figure {
  position:relative;
  margin:0;
  min-width:0;
  height:100%;
  min-height:410px;
  overflow:hidden;
  background:#355767}
.harbor-figure img {
  width:100%;
  height:100%;
  position:absolute;
  object-fit:cover}
.hero .harbor-figure::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#142f41 0%,#142f4133 35%,#142f4100 100%)}
.harbor-figure figcaption {
  position:absolute;
  bottom:15px;
  right:20px;
  z-index:1;
  background:#142f41d9;
  color:white;
  font-size:.65rem;
  padding:5px 10px}
.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:start}
.intro-copy {
  padding-top:12px;
  color:var(--ink)}
.cream {
  background:var(--cream)}
.services-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  margin-top:38px}
.service-card {
  background:white;
  padding:32px;
  border:1px solid var(--line);
  display:flex;
  flex-direction:column}
.service-card .eyebrow {
  border-bottom:1px solid var(--gold);
  width:36px;
  padding-bottom:10px}
.service-card p:not(.eyebrow) {
  font-size:.94rem;
  color:var(--ink)}
.service-card .text-link {
  margin-top:auto;
  align-self:start}
.service-card:nth-child(4) {
  grid-column:span 2;
  background:var(--navy);
  color:#fff}
.service-card:nth-child(4) p {
  color:#e0e6e9}
.marine-feature {
  border-bottom:1px solid var(--line)}
.marine-feature .split {
  align-items:center}
.marine-feature .harbor-figure {
  min-height:370px}
.team-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
  margin:35px 0}
.staff-card {
  display:grid;
  grid-template-columns:155px 1fr;
  align-items:center;
  border:1px solid var(--line);
  background:#fff}
.portrait-placeholder {
  min-height:210px;
  background:#e6e4dc;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:#667478}
.initials {
  font-family:Georgia,serif;
  font-size:2.8rem;
  line-height:1;
  margin:0 0 12px;
  letter-spacing:.06em}
.photo-label {
  font-size:.65rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  margin:0}
.staff-copy {
  padding:24px}
.staff-copy h3 {
  font-size:1.5rem}
.staff-copy .eyebrow {
  font-size:.62rem}
.placeholder {
  color:#667078;
  font-size:.85rem}
.closing-cta {
  text-align:center;
  background:var(--navy);
  color:#fff}
.closing-cta .eyebrow {
  color:#d1b980}
.closing-cta .button {
  background:var(--gold);
  border-color:var(--gold);
  color:var(--navy)}
.closing-cta p:not(.eyebrow) {
  color:#d9e2e7}
.page-intro {
  background:var(--cream);
  padding:65px 0}
.page-intro h1 {
  max-width:860px}
.page-intro .lead {
  color:var(--ink)}
.service-navigation {
  padding:26px 0;
  border-bottom:1px solid var(--line)}
.service-index {
  display:flex;
  flex-wrap:wrap;
  gap:16px 30px}
.service-index p {
  margin:0;
  font-size:.8rem}
.service-detail {
  border-bottom:1px solid var(--line)}
.service-detail ul {
  padding-left:20px}
.service-detail li {
  padding:5px 0}
.marine-detail {
  border-left:5px solid var(--gold)}
.values-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:45px}
.contact-grid {
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:90px}
.contact-form-panel>p {
  font-size:.88rem;
  color:var(--ink)}
label {
  display:block;
  font-size:.85rem;
  font-weight:600;
  margin-bottom:16px}
input:not([type=checkbox]),textarea,select {
  display:block;
  width:100%;
  padding:12px;
  margin-top:6px;
  border:1px solid #a8b2b9;
  border-radius:2px;
  background:#fff;
  color:var(--navy)}
textarea {
  min-height:155px;
  resize:vertical}
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px}
.consent {
  font-weight:400;
  display:flex;
  align-items:flex-start;
  gap:10px}
.consent input {
  margin-top:8px}
.honeypot {
  position:absolute;
  left:-10000px}
.form-notice {
  padding:15px 18px;
  border-left:3px solid var(--gold);
  background:var(--cream);
  font-size:.85rem;
  margin-bottom:22px}
.form-notice.error {
  border-color:#a5372c}
.form-notice.success {
  border-color:#347056}
.client-box {
  margin-top:35px;
  padding:26px;
  background:var(--cream)}
.contact-details dl {
  margin:0}
.contact-details dt {
  font-weight:600;
  font-size:.8rem;
  margin-top:20px}
.contact-details dd {
  margin:3px 0 20px;
  color:var(--ink)}
.map-placeholder {
  padding:28px;
  border:1px dashed #9ba6ad;
  font-size:.85rem;
  margin-top:26px}
.site-footer {
  background:#0e2433;
  color:#d9e2e7;
  padding:58px 0 22px}
.footer-top {
  display:flex;
  justify-content:space-between;
  gap:40px}
.footer-nav {
  display:flex;
  gap:25px;
  flex-wrap:wrap;
  margin:32px 0}
.footer-nav a {
  font-size:.84rem}
.footer-meta {
  border-top:1px solid #385160;
  padding-top:22px;
  font-size:.72rem;
  display:flex;
  justify-content:space-between;
  gap:20px}
.site-footer .brand-name {
  color:white}
.site-footer .button-outline {
  color:white}
.site-footer .placeholder {
  color:#c1ccd2}
.site-footer p {
  margin:14px 0}
.entry-content>.wp-block-group {
  margin-block-start:0}
.entry-content {
  overflow-wrap:break-word}
.generic-content {
  padding-block:75px;
  min-height:50vh}
.screen-reader-text {
  position:absolute!important;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(1px,1px,1px,1px)}

@media(min-width:1600px) {
  .hero-copy {
  padding-left:200px}
.hero h1 {
  max-width:130%}
}

@media(max-width:1100px) {
  .site-header-inner {
  flex-wrap:wrap;
  padding-block:23px;
  gap:20px}
.header-nav {
  width:100%;
  justify-content:space-between}
.hero-copy {
  padding:70px 30px}
.hero h1 {
  max-width:115%;
  font-size:3.7rem}
.team-grid {
  gap:20px}
.staff-card {
  grid-template-columns:110px 1fr}
.staff-copy {
  padding:18px}
.split {
  gap:40px}
}

@media(max-width:760px) {
  .container,.site-header-inner,.footer-inner {
  width:calc(100% - 40px)}
.section {
  padding:55px 0}
.brand-name {
  font-size:1.65rem}
.site-header-inner {
  min-height:86px}
.menu-toggle {
  display:block;
  margin-left:auto;
  background:white;
  border:1px solid var(--line);
  min-width:48px;
  min-height:44px;
  padding:8px 12px;
  color:var(--navy)}
.header-nav {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:22px}
.js .header-nav[hidden] {
  display:none}
.header-nav ul {
  flex-direction:column;
  gap:16px}
.header-nav a {
  font-size:.95rem}
.header-nav .client-links {
  display:grid;
  grid-template-columns:1fr 1fr}
.hero {
  padding:0}
.hero>.container {
  grid-template-columns:1fr}
.hero-copy {
  padding:55px 20px 44px}
.hero h1 {
  font-size:clamp(2.7rem,10vw,4.6rem);
  width:auto;
  max-width:100%}
.hero .harbor-figure {
  min-height:265px}
.hero .harbor-figure::after {
  background:linear-gradient(180deg,#142f41 0%,transparent 40%)}
.split,.team-grid,.values-grid,.contact-grid {
  grid-template-columns:1fr;
  gap:30px}
.services-grid {
  grid-template-columns:1fr;
  gap:16px}
.service-card:nth-child(4) {
  grid-column:auto}
.staff-card {
  grid-template-columns:120px 1fr}
.portrait-placeholder {
  min-height:190px}
.staff-copy h3 {
  font-size:1.4rem}
.page-intro {
  padding:45px 0}
.service-navigation {
  padding:24px 0}
.service-index {
  flex-direction:column;
  gap:10px}
.footer-top,.footer-meta {
  flex-direction:column}
.footer-top {
  gap:25px}
.site-footer .client-links {
  align-self:start}
.contact-grid {
  gap:45px}
.form-row {
  grid-template-columns:1fr;
  gap:0}
.marine-feature .harbor-figure {
  min-height:280px}
}

/* Prevent WordPress flow spacing from offsetting children of custom CSS grids/flex rows. */
.brand-artwork { width:210px; max-width:100%; padding:10px 0; }
.brand-logo { width:100%; height:auto; background:#fff; }
.hero-copy { min-width:0; }
.site-footer .brand-artwork { padding:0; }
@media(max-width:760px) { .brand-artwork { width:170px; padding:0; } }
.actions>*,.split>*,.services-grid>*,.team-grid>*,.staff-card>*,.values-grid>*,.contact-grid>*,.service-index>* {
  margin-block-start:0!important}

button:disabled {
  opacity:.65;
  cursor:not-allowed}

.footer-top {
  align-items:flex-start}
.footer-top .client-links {
  align-items:flex-start}

@media(max-width:760px) {
  .site-header-inner {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px}
.header-nav {
  grid-column:1 / -1}
.brand-name {
  font-size:1.5rem}
.brand-subtitle {
  font-size:.5rem;
  letter-spacing:.12em}
.menu-toggle {
  font-size:.8rem;
  padding:6px 10px}
.custom-logo {
  max-width:100%}
}

@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto}
* {
  animation:none!important;
  transition:none!important}
}

