/* Polish pass: type, spacing and finish over the modern layer. Loads last. */
:root {
  --pol-body: #4a4a4a;
  --pol-ink: #262b22;
  --pol-lime-deep: #4f7a12;
  --pol-on-lime: #1f2d07;
}

/* 1. Band titles: smaller, firmer, legible over photos */
.mod-band-title { font-size: 46px !important; line-height: 1.1 !important; font-weight: 500 !important; letter-spacing: -0.025em !important; }
.mod-band-title span { text-shadow: 0 1px 2px rgba(0, 0, 0, .25), 0 4px 28px rgba(0, 0, 0, .35); }
.fusion-fullwidth:has(.mod-band-title) { box-shadow: inset 0 0 0 100vmax rgba(18, 24, 12, .3); }
.mod-reviews-head h2 { font-size: 40px !important; font-weight: 500 !important; }
@media (max-width: 800px) { .mod-band-title { font-size: 34px !important; } .mod-reviews-head h2 { font-size: 30px !important; } }

/* 2. Intro cards: two even cards, then a wide card and a slim strip, no holes */
.mod-cards { align-items: start; }
.mod-card-wide { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr 1fr; column-gap: 28px; align-items: start; }
.mod-card-wide .mod-card-icon { grid-row: 1 / span 2; margin: 0; }
.mod-card-wide h4 { grid-column: 2 / -1; }
.mod-card-wide p { margin: 0 0 8px !important; }
.mod-card-strip { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr; column-gap: 28px; align-items: center; padding: 20px 24px !important; }
.mod-card-strip .mod-card-icon { grid-row: 1 / span 2; margin: 0; }
.mod-card-strip h4 { margin-bottom: 2px !important; }
.mod-card-strip p { margin: 0 !important; }
@media (max-width: 800px) {
  .mod-card-wide, .mod-card-strip { display: block; padding: 24px 24px 18px !important; }
  .mod-card-wide .mod-card-icon, .mod-card-strip .mod-card-icon { margin-bottom: 14px; }
}

/* 3. Lead paragraph: charcoal, green accent on the place */
.mod-lead { color: var(--pol-ink) !important; font-size: 21px !important; line-height: 1.6 !important; letter-spacing: -0.01em !important; max-width: 62ch; }
.mod-accent { color: var(--pol-lime-deep); font-weight: 500; }
@media (max-width: 800px) { .mod-lead { font-size: 19px !important; } }

/* 4. Body text: 16px, deeper grey, more air */
.mod-card p, .mod-profile-card p, .mod-steps p, .mod-faq-item p, .mod-acc-body, .mod-acc-body li, .mod-case-intro, .mod-facts {
  font-size: 16px !important; line-height: 1.72 !important; color: var(--pol-body) !important;
}
.mod-profile-card .mod-role { font-size: 14.5px !important; color: var(--pol-lime-deep) !important; }
.mod-qual { color: var(--pol-lime-deep) !important; }
.mod-chips li { color: #3f5c12; }

/* 5. Reviews: upright, even heights, bigger mark */
.mod-reviews-grid { align-items: stretch; }
.mod-review-pull { font-style: normal !important; font-size: 18px !important; line-height: 1.6 !important; letter-spacing: -0.005em; color: #f4f4f4 !important; }
.mod-review-mark { font-size: 150px; top: -14px; color: rgba(166, 206, 57, .3); }
.mod-review figcaption { margin-top: auto; }
.mod-review-more summary { font-size: 14px; font-weight: 600; }
.mod-review figcaption b { font-weight: 600; }

/* 6. Contact form and details */
.wpcf7 p { font-size: 14px !important; font-weight: 500; color: #333 !important; margin-bottom: 18px !important; letter-spacing: .005em; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 textarea {
  height: 50px !important; margin-top: 6px !important; font-size: 16px !important; color: #222 !important;
  background: #fbfcf9 !important; border-color: #dfe3d6 !important; width: 100% !important; box-sizing: border-box;
}
.wpcf7 textarea { height: 160px !important; }
.wpcf7 input:focus, .wpcf7 textarea:focus { background: #fff !important; border-color: #7fa82a !important; box-shadow: 0 0 0 4px rgba(166, 206, 57, .22) !important; }
.wpcf7 input[type="submit"] {
  height: 50px !important; padding: 0 34px !important; font-size: 16px !important; font-weight: 600 !important;
  background: var(--mod-lime) !important; color: var(--pol-on-lime) !important; border: 0 !important; text-shadow: none !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35) !important; cursor: pointer; transition: background-color .2s, transform .3s var(--mod-spring);
}
.wpcf7 input[type="submit"]:hover { background: #b4d94d !important; }
.wpcf7 input[type="submit"]:active { transform: scale(.97); }
.mod-contact-card { background: #f6f8f1; border: 1px solid #e8eddc; border-radius: 18px; padding: 24px 24px 20px; margin-bottom: 4px; }
.mod-contact-card h4 { font-size: 13px !important; letter-spacing: .08em !important; text-transform: uppercase; color: #7a8a66 !important; margin: 0 0 12px !important; font-weight: 600 !important; }
.mod-contact-name { font-size: 20px !important; font-weight: 600; color: var(--pol-ink) !important; margin: 0 0 16px !important; line-height: 1.3 !important; }
.mod-contact-name span { display: block; font-size: 14.5px; font-weight: 400; color: var(--pol-lime-deep); margin-top: 2px; }
.mod-contact-line { display: flex; align-items: center; gap: 12px; margin: 0 0 10px !important; font-size: 15.5px !important; color: var(--pol-body) !important; }
.mod-contact-line .fa { width: 30px; height: 30px; flex: none; display: grid; place-items: center; border-radius: 9px; background: rgba(166, 206, 57, .18); color: var(--pol-lime-deep); font-size: 14px; }
.mod-contact-line a { color: var(--pol-ink) !important; text-decoration: none !important; border-bottom: 1px solid rgba(79, 122, 18, .3); word-break: normal; overflow-wrap: normal; }
.mod-contact-line a:hover { border-bottom-color: var(--pol-lime-deep); }
.mod-contact-legal { margin: 16px 0 0 !important; padding-top: 14px; border-top: 1px solid #e3e9d4; font-size: 13.5px !important; color: #777 !important; line-height: 1.6 !important; }

/* 7. Contrast: dark text on lime, deeper brand green */
.mod-cta, .mod-sheet .mod-cta { color: var(--pol-on-lime) !important; text-shadow: none !important; font-weight: 600 !important; }
.mod-brand span { color: var(--pol-lime-deep) !important; font-weight: 500; }

/* 8. Rhythm and footer */
.mod-steps li::before { font: 600 15px/1 "Inter", sans-serif !important; }
.mod-reviews-head { margin: 0 auto 48px !important; }
.mod-reviews-head p { margin-top: 12px !important; line-height: 1.55; }
#footer { padding: 44px 0 36px !important; background: #2b2e28 !important; border-top: 0 !important; }
#footer .copyright-area-content, #footer .copyright { width: 100% !important; float: none !important; }
.mod-foot { display: grid; grid-template-columns: 1fr auto; gap: 18px 40px; align-items: start; }
.mod-foot-id b { display: block; color: #fff; font-size: 16px; font-weight: 600; margin-bottom: 4px; }
.mod-foot-id span { color: #a3a89a; font-size: 14px; }
.mod-foot-links { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: flex-end; font-size: 14px; color: #a3a89a; }
.mod-foot-links li { margin: 0 !important; padding: 0 !important; }
.mod-foot-links a { color: #e6eadc !important; text-decoration: none !important; }
.mod-foot-links a:hover { color: var(--mod-lime) !important; }
.mod-foot-copy { grid-column: 1 / -1; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .08); font-size: 13px; color: #85897d; }
@media (max-width: 800px) { .mod-foot { grid-template-columns: 1fr; } .mod-foot-links { justify-content: flex-start; flex-direction: column; } }

/* One vertical rhythm: content sections 72px, title bands 40px */
#main .fusion-fullwidth:not(:has(.mod-band-title)):not(#home > .fusion-fullwidth:first-child) { padding-top: 72px !important; padding-bottom: 72px !important; }
#main .fusion-fullwidth:has(.mod-band-title) { padding-top: 40px !important; padding-bottom: 40px !important; }
#main .fusion-fullwidth:has(.mod-band-title) .fusion-separator { display: none !important; }
.mod-band-title { margin: 0 !important; }
#main .fusion-fullwidth:has(.mod-band-title) h2 + p, #main .fusion-fullwidth:has(.mod-band-title) h2 + * p { margin-top: 14px !important; }
#main#main#main .fusion-fullwidth:has(.mod-services) { padding-bottom: 0 !important; }
#main#main#main .fusion-fullwidth:has(.mod-services) + .fusion-fullwidth { padding-top: 40px !important; }
#main#main#main .fusion-fullwidth:has(.mod-reviews) { padding-top: 64px !important; }
.mod-case { margin-top: 0 !important; }
#main#main#main .fusion-fullwidth:has(.mod-case) { padding-top: 32px !important; padding-bottom: 36px !important; }
#main#main#main .fusion-fullwidth:has(.wpcf7) { padding-bottom: 40px !important; }
@media (max-width: 800px) {
  #main .fusion-fullwidth:not(:has(.mod-band-title)):not(#home > .fusion-fullwidth:first-child) { padding-top: 48px !important; padding-bottom: 48px !important; }
  #main .fusion-fullwidth:has(.mod-band-title) { padding-top: 28px !important; padding-bottom: 28px !important; }
}

.mod-review-pull { padding-right: 34px; }
.mod-review figcaption { min-height: 76px; }
.wpcf7 p.mod-form-note { font-weight: 400; color: #777 !important; margin-top: 10px !important; }

/* Contact form: real labels, no "(required)" text, subject dropdown */
.mod-field { margin: 0 0 18px !important; }
.mod-field label { display: block; font-size: 14px; font-weight: 500; color: #333; margin: 0 0 6px; }
.mod-form-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
@media (max-width: 700px) { .mod-form-2 { grid-template-columns: 1fr; } }
.wpcf7 .mod-field input, .wpcf7 .mod-field textarea { margin-top: 0 !important; }
.wpcf7 textarea { height: 150px !important; }
.wpcf7 textarea::placeholder { color: #9a9f92; }
.mod-select { position: relative; display: block; }
.mod-select::after { content: ""; position: absolute; right: 18px; top: 50%; width: 8px; height: 8px; margin-top: -6px; border: solid #6f7a5e; border-width: 0 2px 2px 0; transform: rotate(45deg); pointer-events: none; }
.wpcf7 select {
  -webkit-appearance: none; appearance: none; width: 100% !important; height: 50px !important; padding: 0 44px 0 14px !important;
  font-size: 16px !important; color: #222 !important; background: #fbfcf9 !important; border: 1px solid #dfe3d6 !important; border-radius: 12px !important;
  cursor: pointer; transition: border-color .2s, box-shadow .2s; box-sizing: border-box;
}
.wpcf7 select:invalid, .wpcf7 select:has(option[value=""]:checked) { color: #8a8f82 !important; }
.wpcf7 select:focus { outline: none; background: #fff !important; border-color: #7fa82a !important; box-shadow: 0 0 0 4px rgba(166, 206, 57, .22) !important; }
.wpcf7 .mod-field [aria-invalid="true"] { border-color: #d9826f !important; background: #fffaf8 !important; }

/* Spam trap, sent state */
.mod-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.wpcf7-submit:disabled { opacity: .7; cursor: default; }

/* Phones: Call / Enquire bar */
.mod-mbar { display: none; }
@media (max-width: 800px) {
  .mod-mbar {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px; position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 9999;
    padding: 6px; border-radius: 999px; background: rgba(255, 255, 255, .82); border: 1px solid rgba(255, 255, 255, .8);
    -webkit-backdrop-filter: blur(18px) saturate(180%); backdrop-filter: blur(18px) saturate(180%);
    box-shadow: 0 12px 34px -12px rgba(30, 45, 20, .35), 0 2px 6px rgba(30, 45, 20, .08);
    transition: transform .45s var(--mod-ease), opacity .3s;
  }
  .mod-mbar a { display: flex; align-items: center; justify-content: center; gap: 8px; height: 46px; border-radius: 999px; font-size: 16px; font-weight: 600; text-decoration: none !important; }
  .mod-mbar-call { background: #f1f5e6; color: var(--pol-ink) !important; }
  .mod-mbar-enq { background: var(--mod-lime); color: var(--pol-on-lime) !important; }
  .mod-mbar a:active { transform: scale(.97); }
  .mod-mbar-hide { transform: translateY(140%); opacity: 0; pointer-events: none; }
  .mod-has-mbar body { padding-bottom: 76px; }
  .mod-has-mbar #toTop, .mod-has-mbar .to-top-container { bottom: 84px !important; }
}

/* Expanded lino-cut print (the logo's own banksias, traced and re-pulled wide), softer than before */
#features > .fusion-fullwidth::before {
  width: min(1600px, 112%); aspect-ratio: 1950 / 1200;
  background-image: url(/modern/linocut-watermark.png); opacity: .26;
  -webkit-mask-image: radial-gradient(closest-side, #000 45%, rgba(0, 0, 0, .5) 75%, transparent 100%);
  mask-image: radial-gradient(closest-side, #000 45%, rgba(0, 0, 0, .5) 75%, transparent 100%);
}

/* Service pages: same polish as the home page */
body.pg { color: var(--pol-body); }
.pg h1, .pg h2 { font-weight: 500 !important; letter-spacing: -0.022em !important; }
.pg h2 { font-size: 30px !important; }
.pg-lead { color: var(--pol-ink) !important; font-size: 20px !important; }
.pg p, .pg li { font-size: 16.5px; line-height: 1.72; }
