/* CKS Projects .cks-ca design system, copied 2026-10-14 for Nowra Builders (root class .ca).
   Regenerate only with _work/2026-10-14/extract_cks_css.py; site-specific CSS lives in site.css. */
/* ---------- Tokens ---------- */
.ca {
  --ca-navy: #002842;
  --ca-white: #ffffff;
  --ca-mist: #d9d9d9;
  --ca-grad-centre: #f5f5f5;
  --ca-grad-edge: #d9d9d9;
  --ca-slate: #6b7178;
  --ca-hairline: #e9e6e2;
  --ca-ink: #000000;
  --ca-scrim: rgba(0, 40, 66, .45);

  --ca-font-head: "Urbanist", sans-serif;
  --ca-font-body: "Poppins", sans-serif;

  --ca-h1: clamp(3.025rem, 2.66rem + 1.486vw, 4rem);
  --ca-h2: clamp(2.215rem, 1.99771rem + 0.89143vw, 2.8rem);
  --ca-h3: clamp(1.81rem, 1.66516rem + 0.59429vw, 2.2rem);
  --ca-h4: clamp(1.405rem, 1.33258rem + 0.29714vw, 1.6rem);
  --ca-lead: clamp(1.27rem, 1.222rem + 0.198vw, 1.4rem);
  --ca-body: 1rem;
  --ca-micro: .72rem;

  --ca-pad-sm: clamp(29.7px, 3.3vw, 47.52px);
  --ca-pad-md: clamp(59.4px, 6.6vw, 95.04px);
  --ca-inset: clamp(20px, 8.333vw, 120px);
  --ca-content: 1200px;
  --ca-narrow: 900px;
  --ca-headline: 796px;
  --ca-measure: 680px;
  --ca-gap: 11px;
  --ca-stack: 24px;
  --ca-radius-btn: 10px;
  --ca-radius-card: 6px;

  display: block;
  width: 100%;
  font-family: var(--ca-font-body);
  font-size: var(--ca-body);
  line-height: 1.5;
  color: var(--ca-navy);
  text-align: left;
  -webkit-font-smoothing: antialiased;
}
.ca *, .ca *::before, .ca *::after { box-sizing: border-box; }

/* ---------- Reset: shield the block from Squarespace theme styles ---------- */
.ca :is(h1, h2, h3, h4, p, li, ul, ol, blockquote, cite, summary, span, strong, small, b, a, figure, figcaption, details, table, th, td, caption) {
  color: inherit;
  white-space: normal;
  text-transform: none;
  font-family: var(--ca-font-body);
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: normal;
  line-height: inherit;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  text-decoration: none;
}
.ca img { max-width: 100%; height: auto; display: block; border: 0; }
.ca svg { display: block; }

/* ---------- Typography ---------- */
.ca :is(h1, h2, h3, h4) {
  font-family: var(--ca-font-head);
  font-weight: 700;   /* live headings are wrapped in <strong> in the editor */
  letter-spacing: -.02em;
  margin: 0 0 var(--ca-stack);
  text-wrap: balance;
}
.ca h1 { font-size: var(--ca-h1); line-height: 1.056; }
.ca h2 { font-size: var(--ca-h2); line-height: 1.114; }
.ca h3 { font-size: var(--ca-h3); line-height: 1.142; }
.ca h4 { font-size: var(--ca-h4); line-height: 1.171; }
.ca p { margin: 0 0 1em; }
.ca p:last-child { margin-bottom: 0; }
.ca strong, .ca b { font-weight: 700; }
.ca .ca-lead { font-size: var(--ca-lead); line-height: 1.5; }
.ca p a, .ca li a, .ca td a, .ca .ca-link {
  text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px;
}
.ca a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.ca .ca-kicker {
  display: block;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  margin: 0 0 12px;
}
/* Large kicker: Urbanist H4 scale, bold - as on live */
.ca .ca-kicker--lg {
  font-family: var(--ca-font-head);
  font-size: var(--ca-h4);
  line-height: 1.171;
  letter-spacing: -.02em;
  margin-bottom: var(--ca-stack);
}
.ca .ca-eyebrow {
  display: block;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ca-slate);
  margin-bottom: 8px;
}
.ca .ca-label {
  font-size: .75rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--ca-slate);
}
.ca .ca-label b { color: #002845; letter-spacing: .08em; text-transform: uppercase; }

.ca ul.ca-list { list-style: disc; padding-left: 1.25em; margin: 0 0 var(--ca-stack); }
.ca ul.ca-list li { margin-bottom: 10px; padding-left: .25em; }
.ca ul.ca-list li::marker { font-size: .8em; }

/* Source tag: separates CKS facts / NSW rules / general advice */
.ca .ca-tag {
  display: inline-block;
  font-size: 10.5px; font-weight: 600; line-height: 1.4;
  letter-spacing: .13em; text-transform: uppercase;
  border: 1px solid currentColor; border-radius: 3px;
  padding: 3px 8px; margin: 0 0 14px;
  opacity: .8;
}

/* ---------- Section shells ---------- */
.ca .ca-section { padding: var(--ca-pad-md) var(--ca-inset); }
.ca .ca-section--sm { padding-block: var(--ca-pad-sm); }
.ca .ca-bg-navy { background: var(--ca-navy); color: var(--ca-white); }
.ca .ca-bg-navy.ca-bold h2 { color: var(--ca-mist); }
.ca .ca-bg-white { background: var(--ca-white); color: var(--ca-navy); }
.ca .ca-bg-light {
  background: radial-gradient(ellipse at 50% 45%, var(--ca-grad-centre) 0%, #e6e6e6 55%, var(--ca-grad-edge) 100%);
  color: var(--ca-navy);
}

/* Image break */
.ca .ca-break { width: 100%; height: clamp(260px, 44vw, 636px); object-fit: cover; }

/* ---------- Containers ---------- */
.ca .ca-wrap { max-width: var(--ca-content); margin-inline: auto; }
.ca .ca-narrow { max-width: var(--ca-narrow); margin-inline: auto; }
.ca .ca-headline { max-width: var(--ca-headline); margin-inline: auto; }
.ca .ca-measure { max-width: var(--ca-measure); }
.ca .ca-center { text-align: center; }

/* ---------- Grids ---------- */
.ca .ca-split { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: start; }
.ca .ca-media { display: grid; gap: 40px; }
.ca .ca-media img { width: 100%; object-fit: cover; }
.ca .ca-media-pair { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ca-gap); }
@media (min-width: 768px) {
  .ca .ca-split { grid-template-columns: 1fr 1fr; gap: 62px; }
  .ca .ca-split--center { align-items: center; }
  .ca .ca-split--media-first .ca-media { order: -1; }
}
@media (max-width: 767px) {
  /* On mobile, text always comes before media */
  .ca .ca-split--media-first .ca-media { order: 1; }
}

.ca .ca-cards { display: grid; grid-template-columns: 1fr; gap: var(--ca-gap); margin-top: 48px; }
@media (min-width: 768px) { .ca .ca-cards { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .ca .ca-cards--3 { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .ca .ca-cards--4 { grid-template-columns: repeat(4, 1fr); } }
.ca .ca-cards--inset { max-width: 1000px; margin-inline: auto; gap: 11px 40px; }
/* Service group heading between card grids */
.ca .ca-group { margin-top: 56px; }
.ca .ca-group + .ca-cards { margin-top: 20px; }

/* ---------- Components ---------- */
.ca .ca-btn {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--ca-font-body); font-size: 1rem; font-weight: 400; line-height: normal;
  text-decoration: none;
  padding: 1rem 1.3rem;
  border-radius: var(--ca-radius-btn);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background-color .2s, color .2s, border-color .2s;
}
.ca .ca-btn--solid { background: var(--ca-white); color: var(--ca-ink); }
.ca .ca-btn--solid:hover { background: var(--ca-mist); }
.ca .ca-btn--navy { background: var(--ca-navy); color: var(--ca-white); }
.ca .ca-btn--navy:hover { background: #0b3a5a; }
.ca .ca-btn--outline {
  background: transparent; color: var(--ca-mist); border-color: var(--ca-mist);
  padding-block: 1.25rem; min-width: 214px;
}
.ca .ca-btn--outline:hover { background: var(--ca-mist); color: var(--ca-navy); }
.ca .ca-btn--ghost { background: transparent; color: var(--ca-navy); border-color: var(--ca-navy); }
.ca .ca-btn--ghost:hover { background: var(--ca-navy); color: var(--ca-white); }
.ca .ca-btn:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.ca .ca-btn-row { display: flex; flex-wrap: wrap; gap: 11px 40px; justify-content: center; margin-top: 32px; }
.ca .ca-btn-row--start { justify-content: flex-start; gap: 11px 16px; }
@media (max-width: 767px) {
  .ca .ca-btn-row { gap: 11px; }
  .ca .ca-btn { width: 100%; }
}

/* Credential tiles */
.ca .ca-creds-title {
  font-family: var(--ca-font-head); font-size: clamp(21px, 18.4px + .667vw, 28px);
  font-weight: 600; letter-spacing: -.01em; line-height: 1.25; margin: 0 0 20px; color: #1c1b1b;
}
.ca .ca-creds {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px;
  max-width: 940px; margin: 0 auto 20px;
}
.ca .ca-cred {
  background: var(--ca-white); border: 1px solid var(--ca-hairline); border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
  padding: 24px 16px; text-align: center;
}
.ca .ca-cred img { height: 66px; width: auto; max-width: 139px; object-fit: contain; margin: 0 auto; }
.ca .ca-cred span {
  display: block; margin-top: 16px; font-size: 11px; font-weight: 600; line-height: 1.445;
  letter-spacing: .11em; text-transform: uppercase; color: var(--ca-slate);
}
@media (max-width: 600px) {
  .ca .ca-creds { gap: 8px; }
  .ca .ca-cred { padding: 14px 8px; }
  .ca .ca-cred img { height: 44px; }
  .ca .ca-cred span { margin-top: 10px; }
}

/* Definition chain (numbered flow) */
.ca ol.ca-chain { list-style: none; margin: 8px 0 var(--ca-stack); counter-reset: chain; }
.ca ol.ca-chain li {
  counter-increment: chain;
  display: grid; grid-template-columns: 44px 1fr; gap: 16px; align-items: baseline;
  padding: 14px 0; border-top: 1px solid rgba(255, 255, 255, .28);
}
.ca .ca-bg-light ol.ca-chain li,
.ca .ca-bg-white ol.ca-chain li { border-top-color: rgba(0, 40, 66, .22); }
.ca ol.ca-chain li:last-child { border-bottom: 1px solid rgba(255, 255, 255, .28); }
.ca .ca-bg-light ol.ca-chain li:last-child,
.ca .ca-bg-white ol.ca-chain li:last-child { border-bottom-color: rgba(0, 40, 66, .22); }
.ca ol.ca-chain li::before {
  content: counter(chain, decimal-leading-zero);
  font-family: var(--ca-font-head); font-weight: 700; font-size: 1.05rem; letter-spacing: -.01em; opacity: .7;
}

/* Process step cards */
.ca .ca-step { border: 1px solid var(--ca-white); padding: clamp(28px, 3.5vw, 50px); }
.ca .ca-step-num { display: block; font-weight: 700; font-size: 16px; line-height: 24px; margin-bottom: 20px; }
.ca .ca-step h3 { margin-bottom: 20px; }
.ca .ca-step a { text-decoration: underline; text-underline-offset: 3px; }

/* White cards (services, audiences, reasons) */
.ca .ca-card { --ca-card-pad: clamp(24px, 3.5vw, 50px); background: var(--ca-white); padding: var(--ca-card-pad); }
/* Card image: bleeds to the card edges, fixed 3:2 crop, links to the service */
.ca .ca-card-media {
  display: block; overflow: hidden;
  width: calc(100% + 2 * var(--ca-card-pad));
  margin: calc(-1 * var(--ca-card-pad)) calc(-1 * var(--ca-card-pad)) 22px;
}
.ca .ca-card-media-img {
  display: block; width: 100%; max-width: none; height: auto;
  aspect-ratio: 3 / 2; object-fit: cover;
  transition: transform .4s ease, opacity .2s;
}
.ca .ca-card-media:hover .ca-card-media-img { transform: scale(1.03); opacity: .92; }
@media (prefers-reduced-motion: reduce) { .ca .ca-card-media-img { transition: none; } .ca .ca-card-media:hover .ca-card-media-img { transform: none; } }
.ca .ca-card h3 {
  font-family: var(--ca-font-body); font-size: 1rem; font-weight: 700;
  line-height: 1.5; letter-spacing: 0; margin-bottom: 12px; color: #000;
}
.ca .ca-card .ca-card-link { display: inline-block; margin-top: 14px; font-size: .875rem; font-weight: 700; }
.ca .ca-bg-white .ca-card { border: 1px solid var(--ca-hairline); }
.ca .ca-cards--4 .ca-card { --ca-card-pad: clamp(24px, 2.4vw, 36px); }

/* Icon grid */
.ca .ca-icons {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ca-gap);
  max-width: 1000px; margin: 48px auto 0;
}
@media (min-width: 600px) { .ca .ca-icons { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .ca .ca-icons { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ca .ca-icon {
  border: 1px solid var(--ca-hairline); border-radius: 4px; background: var(--ca-white);
  padding: 26px 20px; text-align: left;
}
.ca .ca-icon svg { width: 34px; height: 34px; margin-bottom: 16px; color: var(--ca-navy); }
.ca .ca-icon strong { display: block; font-size: 1rem; line-height: 1.35; margin-bottom: 6px; color: #000; }
.ca .ca-icon span { display: block; font-size: .875rem; line-height: 1.5; color: #3b4650; }

/* Responsive table */
.ca .ca-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 32px 0 0; border: 1px solid rgba(0, 40, 66, .22); background: var(--ca-white); }
.ca .ca-table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: .925rem; }
.ca .ca-table caption { text-align: left; font-size: .75rem; letter-spacing: .13em; text-transform: uppercase; color: var(--ca-slate); padding: 14px 18px 0; }
.ca .ca-table th, .ca .ca-table td { text-align: left; vertical-align: top; padding: 16px 18px; border-bottom: 1px solid var(--ca-hairline); }
.ca .ca-table thead th { font-weight: 700; border-bottom: 1px solid var(--ca-navy); }
.ca .ca-table tbody th { font-weight: 700; width: 22%; }
.ca .ca-table tr:last-child td, .ca .ca-table tr:last-child th { border-bottom: 0; }
.ca .ca-table-wrap--wide { max-width: var(--ca-content); margin-inline: auto; }
.ca .ca-table-wrap--wide .ca-table { min-width: 820px; }

/* Info panel */
.ca .ca-panel { border: 1px solid currentColor; padding: clamp(24px, 3vw, 40px); margin-top: 40px; }
.ca .ca-panel h3 { font-family: var(--ca-font-body); font-size: 1rem; font-weight: 700; letter-spacing: 0; line-height: 1.5; margin-bottom: 12px; }

/* Local narratives + suburb chips */
.ca .ca-areas { display: grid; grid-template-columns: 1fr; gap: var(--ca-gap); margin-top: 48px; }
@media (min-width: 768px) { .ca .ca-areas { grid-template-columns: 1fr 1fr; } }
.ca .ca-area { border: 1px solid var(--ca-white); padding: clamp(24px, 3vw, 40px); }
.ca .ca-area h3 { font-size: var(--ca-h4); line-height: 1.171; margin-bottom: 14px; }
.ca ul.ca-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; }
.ca ul.ca-chips li {
  font-size: .8rem; line-height: 1.3; letter-spacing: .04em;
  border: 1px solid rgba(255, 255, 255, .55); border-radius: 999px; padding: 6px 12px;
}
/* Council / project line inside an area card */
.ca .ca-meta { font-size: .8rem; line-height: 1.55; letter-spacing: .04em; opacity: .88; margin: 0 0 14px; }

/* Project case cards */
.ca .ca-cases { display: grid; grid-template-columns: 1fr; gap: 40px; margin-top: 48px; }
@media (min-width: 768px) { .ca .ca-cases { grid-template-columns: 1fr 1fr; gap: 40px 62px; } }
.ca .ca-case img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin-bottom: 24px; }
.ca .ca-case h3 { font-size: var(--ca-h4); line-height: 1.171; margin-bottom: 8px; }
.ca .ca-case .ca-label { display: block; margin-bottom: 14px; }

/* Quotes */
.ca .ca-quote { margin: 40px 0 0 clamp(0px, 3.5vw, 54px); }
.ca .ca-quote p { font-size: var(--ca-lead); line-height: 1.5; margin: 0 0 .75em; }
.ca .ca-quote cite { display: block; text-align: right; font-size: .75rem; font-style: normal; }
/* Quote inside a card */
.ca .ca-card .ca-quote { margin: 0; }
.ca .ca-card .ca-quote p { font-size: 1.05rem; }
.ca .ca-card .ca-quote cite { text-align: left; margin-top: 12px; }

/* CTA band */
.ca .ca-cta-band {
  max-width: var(--ca-narrow); margin-inline: auto;
  border-top: 1px solid var(--ca-navy); border-bottom: 1px solid var(--ca-navy);
  padding: 36px 0; display: grid; gap: 20px; align-items: center; text-align: center;
}
@media (min-width: 900px) { .ca .ca-cta-band { grid-template-columns: 1fr auto; text-align: left; } }
.ca .ca-cta-band p { font-family: var(--ca-font-head); font-size: var(--ca-h4); line-height: 1.25; letter-spacing: -.02em; font-weight: 700; }
.ca .ca-cta-band .ca-btn-row { margin-top: 0; gap: 11px; }

/* FAQ */
.ca .ca-faq { max-width: var(--ca-narrow); margin: 40px auto 0; border-top: 1px solid var(--ca-navy); }
.ca .ca-faq details { border-bottom: 1px solid var(--ca-navy); }
.ca .ca-faq summary {
  list-style: none; cursor: pointer;
  display: flex; justify-content: space-between; align-items: center; gap: 24px;
  padding: 28px 0;
  font-family: var(--ca-font-head); font-size: var(--ca-h4); line-height: normal; letter-spacing: -.02em; font-weight: 400;
}
.ca .ca-faq summary:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.ca .ca-faq summary::-webkit-details-marker { display: none; }
.ca .ca-faq summary::after {
  content: "+"; flex: none; font-family: var(--ca-font-body); font-weight: 300; font-size: 1.5rem;
}
.ca .ca-faq details[open] summary::after { content: "\2212"; }
.ca .ca-faq-a { padding: 0 48px 28px 0; }
.ca .ca-faq-a p { margin: 0 0 1em; }
.ca .ca-faq-a p:last-child { margin: 0; }

/* About: long-form measure with facts rail */
.ca .ca-about { display: grid; grid-template-columns: 1fr; gap: 48px; }
@media (min-width: 1024px) { .ca .ca-about { grid-template-columns: minmax(0, 680px) minmax(0, 1fr); gap: 80px; } }
.ca .ca-about h3 { font-size: var(--ca-h4); line-height: 1.171; margin: 40px 0 16px; }
.ca .ca-facts { border-top: 1px solid var(--ca-navy); align-self: start; }
.ca .ca-facts div { padding: 16px 0; border-bottom: 1px solid var(--ca-hairline); }
.ca .ca-facts dt { font-size: .72rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--ca-slate); margin-bottom: 4px; }
.ca .ca-facts dd { margin: 0; font-size: 1rem; line-height: 1.5; }

/* CTA phone strip */
.ca .ca-strip {
  max-width: var(--ca-narrow); margin: 56px auto 0;
  border: 1px solid var(--ca-white); padding: 28px 40px;
  display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px;
}
.ca .ca-strip a { text-decoration: underline; text-underline-offset: 3px; }

.ca .ca-sources { font-size: .8rem; line-height: 1.6; margin-top: 28px; opacity: .85; }

/* Service-area layout: map + area legend */
.ca .ca-diagram { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; max-width: 1100px; margin: 48px auto 0; }
@media (min-width: 900px) { .ca .ca-diagram { grid-template-columns: 1.15fr 1fr; gap: 56px; } }
.ca .ca-diagram figcaption { font-size: .75rem; color: var(--ca-slate); margin-top: 10px; }
/* Google Map embed: responsive 4:3 frame */
.ca .ca-mapframe { position: relative; width: 100%; aspect-ratio: 4 / 3; background: var(--ca-grad-centre); border: 1px solid var(--ca-hairline); }
.ca .ca-mapframe iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }

/* ---------- Markdown / AI-extraction friendly markup (visual output unchanged) ---------- */
/* Credential tiles are now a real <ul>: undo the list reset */
.ca ul.ca-creds { list-style: none; margin: 0 auto 20px; padding: 0; }
.ca li.ca-cred {
  background: var(--ca-white); border: 1px solid var(--ca-hairline); border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .05); padding: 24px 16px; text-align: center;
}
@media (max-width: 600px) { .ca li.ca-cred { padding: 14px 8px; } }
/* Facts are now a real <table>: render it exactly like the old definition list */
.ca table.ca-facts { display: block; width: 100%; border-collapse: collapse; border-top: 1px solid var(--ca-navy); margin-top: 32px; }
.ca table.ca-facts caption { display: block; text-align: left; font-size: .72rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--ca-navy); padding: 14px 0 2px; }
.ca table.ca-facts tbody, .ca table.ca-facts tr { display: block; }
.ca table.ca-facts tr { padding: 16px 0; border-bottom: 1px solid rgba(0, 40, 66, .18); }
.ca table.ca-facts th { display: block; text-align: left; font-size: .72rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--ca-slate); margin-bottom: 4px; }
.ca table.ca-facts td { display: block; font-size: 1rem; line-height: 1.5; }
/* FAQ questions are now <h3> inside <summary>: keep the summary's own type */
.ca .ca-faq summary .ca-faq-q { font: inherit; letter-spacing: inherit; margin: 0; text-wrap: pretty; }


/* =====================================================================
   Service pages (2026-09-30): additive components only
   ===================================================================== */

/* ---------- Hero: answers the query above the fold, then removes friction ---------- */
.ca .ca-hero {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; align-items: flex-end;
  min-height: clamp(600px, 88vh, 860px);
  padding: clamp(88px, 11vh, 132px) var(--ca-inset) clamp(28px, 4vw, 48px);
  background: var(--ca-navy); color: var(--ca-white);
}
/* Run the hero photo up behind the site header. Squarespace overlays the header on the
   first section and pads that section by --header-height (the grey band above the photo).
   Move that padding off the section and into the hero via the offset var Squarespace
   sets on the first section only (0px anywhere else). */
.ca .ca-hero-img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.ca .ca-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(90deg, rgba(0, 40, 66, .94) 0%, rgba(0, 40, 66, .82) 40%, rgba(0, 40, 66, .3) 72%, rgba(0, 40, 66, .12) 100%),
    linear-gradient(0deg, rgba(0, 20, 34, .6) 0%, rgba(0, 20, 34, 0) 42%);
}
.ca .ca-hero-inner { width: 100%; max-width: var(--ca-content); margin-inline: auto; }
.ca .ca-hero-copy { max-width: 690px; }
.ca .ca-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0 0 22px; font-size: .8rem; line-height: 1.4; }
.ca .ca-crumbs li { opacity: .85; }
.ca .ca-crumbs li + li::before { content: "/"; margin: 0 .55em; opacity: .6; }
.ca .ca-crumbs a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.ca .ca-hero-eyebrow {
  display: block; font-size: .78rem; font-weight: 600; line-height: 1.4;
  letter-spacing: .18em; text-transform: uppercase; color: var(--ca-mist); margin: 0 0 14px;
}
.ca .ca-hero h1 {
  font-size: clamp(2.5rem, 1.9rem + 2.6vw, 4.35rem); line-height: 1.04; letter-spacing: -.025em;
  margin: 0 0 20px; color: var(--ca-white);
}
.ca .ca-hero-answer { font-size: var(--ca-lead); line-height: 1.5; margin: 0 0 28px; max-width: 640px; }
.ca .ca-hero .ca-btn-row { margin-top: 0; }
.ca .ca-hero .ca-btn { min-height: 54px; font-weight: 500; }
.ca .ca-btn--light-outline { background: rgba(0, 40, 66, .35); color: var(--ca-white); border-color: var(--ca-white); }
.ca .ca-btn--light-outline:hover { background: var(--ca-white); color: var(--ca-navy); }
.ca .ca-hero-risk { font-size: .875rem; line-height: 1.5; margin: 16px 0 0; color: var(--ca-mist); }
.ca ul.ca-hero-proof {
  list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: clamp(32px, 5vh, 56px) 0 0; border-top: 1px solid rgba(255, 255, 255, .35);
}
.ca ul.ca-hero-proof li { padding: 16px 20px 0 0; font-size: .8rem; line-height: 1.45; color: var(--ca-mist); }
.ca ul.ca-hero-proof strong { display: block; font-family: var(--ca-font-head); font-size: 1.05rem; letter-spacing: -.01em; color: var(--ca-white); margin-bottom: 2px; }
.ca .ca-hero-caption { font-size: .72rem; line-height: 1.4; margin: 18px 0 0; opacity: .75; }
.ca .ca-hero .ca-btn-row--start { gap: 12px; }
@media (max-width: 767px) {
  .ca .ca-hero { min-height: 0; padding-top: 48px; padding-bottom: 28px; }
  .ca .ca-hero::before { background: linear-gradient(0deg, rgba(0, 40, 66, .96) 0%, rgba(0, 40, 66, .86) 60%, rgba(0, 40, 66, .55) 100%); }
  .ca .ca-crumbs ol { margin-bottom: 16px; }
  .ca .ca-hero h1 { margin-bottom: 14px; }
  .ca .ca-hero-answer { font-size: 1.05rem; margin-bottom: 22px; }
  .ca ul.ca-hero-proof { grid-template-columns: 1fr 1fr; margin-top: 26px; }
  .ca ul.ca-hero-proof li { padding: 12px 12px 0 0; }
}

/* ---------- At a glance: the answer as a real table (AI/markdown friendly) ---------- */
.ca .ca-glance { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: start; }
@media (min-width: 1024px) { .ca .ca-glance { grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); gap: 72px; } }
.ca table.ca-kv { width: 100%; border-collapse: collapse; border-top: 1px solid var(--ca-navy); font-size: .95rem; }
.ca table.ca-kv caption { text-align: left; font-size: .72rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--ca-slate); padding: 0 0 10px; }
.ca table.ca-kv th, .ca table.ca-kv td { text-align: left; vertical-align: top; padding: 14px 0; border-bottom: 1px solid rgba(0, 40, 66, .18); }
.ca table.ca-kv th { width: 34%; padding-right: 20px; font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--ca-slate); line-height: 1.6; }
@media (max-width: 600px) {
  .ca table.ca-kv th, .ca table.ca-kv td { display: block; width: 100%; padding: 0; border: 0; }
  .ca table.ca-kv th { padding-top: 14px; margin-bottom: 4px; }
  .ca table.ca-kv td { padding-bottom: 14px; border-bottom: 1px solid rgba(0, 40, 66, .18); }
}

/* Project case image links (image + text link go to the same URL) */
.ca .ca-case > a:first-child { display: block; }
.ca .ca-case > a:first-child img { transition: opacity .2s; }
.ca .ca-case > a:first-child:hover img { opacity: .88; }
@media (min-width: 1024px) { .ca .ca-cases--3 { grid-template-columns: repeat(3, 1fr); gap: 40px; } }
.ca .ca-cases.ca-cases--1 { grid-template-columns: 1fr; max-width: 760px; margin-inline: auto; }
/* Tables inside a split column: wrap instead of scrolling once the column is wide enough */
@media (min-width: 1024px) { .ca .ca-split .ca-table { min-width: 0; } }

/* Related services */
.ca ul.ca-related { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 12px; margin: 28px 0 0; }
.ca ul.ca-related a { display: inline-block; border: 1px solid rgba(255, 255, 255, .55); border-radius: 999px; padding: 8px 16px; font-size: .875rem; }
.ca ul.ca-related a:hover { background: var(--ca-white); color: var(--ca-navy); }

/* Areas: council groups */
.ca .ca-councils { display: grid; grid-template-columns: 1fr; gap: 22px 40px; margin-top: 40px; }
@media (min-width: 768px) { .ca .ca-councils { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ca .ca-councils { grid-template-columns: repeat(3, 1fr); } }
.ca .ca-councils h3 { font-family: var(--ca-font-body); font-size: .75rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; margin: 0 0 4px; opacity: .8; }
.ca .ca-councils ul.ca-chips { margin-top: 10px; }

/* Mobile call bar: sticks to the bottom of the screen while this block is in view */
.ca .ca-mobilebar { display: none; }
@media (max-width: 767px) {
  .ca .ca-mobilebar {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
    position: sticky; bottom: 0; z-index: 5;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    background: rgba(0, 40, 66, .97); box-shadow: 0 -4px 18px rgba(0, 0, 0, .18);
  }
  .ca .ca-mobilebar .ca-btn { width: 100%; min-height: 48px; padding: .75rem .5rem; font-size: .95rem; font-weight: 500; }
  /* Browsers with scroll-driven animations keep the bar hidden until the hero CTAs have scrolled away.
     Others simply show it all the time. */
  @supports (animation-timeline: scroll()) {
    .ca .ca-mobilebar { animation: ca-bar-in linear both; animation-timeline: scroll(root); animation-range: 0 720px; }
    @keyframes ca-bar-in {
      0%, 70% { opacity: 0; transform: translateY(100%); visibility: hidden; }
      100% { opacity: 1; transform: none; visibility: visible; }
    }
  }
}

/* Grid children may hold wide tables: let them shrink so the table scrolls, not the page */
.ca .ca-split > *, .ca .ca-glance > *, .ca .ca-about > * { min-width: 0; }


/* ---------- FAQ grouped by fan-out cluster ---------- */
.ca .ca-faq-groups { max-width: var(--ca-narrow); margin: 40px auto 0; }
.ca .ca-faq-group + .ca-faq-group { margin-top: clamp(40px, 5vw, 64px); }
.ca .ca-faq-group-h {
  margin: 0 0 12px; font-family: var(--ca-font-body); font-size: 1rem; font-weight: 700;
  line-height: 1.5; letter-spacing: normal;
}
.ca .ca-faq-group .ca-faq { margin-top: 0; }

/* Nowra Builders: site-only CSS on top of ca-base.css (the CKS .ca system).
   Page shell (header, footer), hero lead form (hf-), contact + thank-you layouts, map tokens. ASCII only. */

/* ---------- Page shell ---------- */
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: #ffffff; color: #002842; }
.ca { overflow-x: clip; }
.ca .ca-skip { position: absolute; left: 12px; top: -60px; z-index: 50; background: var(--ca-white); color: var(--ca-navy); padding: 10px 14px; border-radius: 6px; }
.ca .ca-skip:focus { top: 12px; }
:target { scroll-margin-top: 90px; }

/* ---------- Header ---------- */
.ca .sh { position: sticky; top: 0; z-index: 30; background: var(--ca-white); border-bottom: 1px solid var(--ca-hairline); }
.ca .sh-in { max-width: var(--ca-content); margin-inline: auto; padding: 0 var(--ca-inset); height: 72px; display: flex; align-items: center; gap: 24px; }
.ca a.sh-brand { display: flex; flex-direction: column; line-height: 1.05; text-decoration: none; margin-right: auto; }
.ca .sh-brand b { font-family: var(--ca-font-head); font-size: 1.25rem; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; }
.ca .sh-brand small { font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ca-slate); margin-top: 4px; }
.ca .sh-nav ul { list-style: none; display: flex; gap: 22px; }
.ca .sh-nav a { font-size: .9rem; font-weight: 500; }
.ca .sh-nav a:hover, .ca .sh-nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: 5px; }
.ca a.sh-phone { font-weight: 700; font-size: .95rem; white-space: nowrap; }
.ca .sh .ca-btn { padding: .7rem 1rem; font-size: .9rem; white-space: nowrap; }
.ca .sh-menu { display: none; }
@media (max-width: 1080px) {
  .ca .sh-nav, .ca .sh-in > .ca-btn { display: none; }
  .ca .sh-menu { display: block; position: relative; }
  .ca .sh-menu summary { list-style: none; cursor: pointer; padding: 10px 12px; border: 1px solid var(--ca-navy); border-radius: 8px; font-size: .85rem; font-weight: 600; }
  .ca .sh-menu summary::-webkit-details-marker { display: none; }
  .ca .sh-menu ul { list-style: none; position: absolute; right: 0; top: calc(100% + 10px); width: min(300px, calc(100vw - 32px)); background: var(--ca-white); border: 1px solid var(--ca-hairline); box-shadow: 0 18px 40px rgba(0, 0, 0, .14); padding: 8px 0; }
  .ca .sh-menu li a { display: block; padding: 11px 18px; font-size: .95rem; }
  .ca .sh-menu li a:hover { background: var(--ca-grad-centre); }
}
@media (max-width: 767px) {
  .ca .sh-in { height: 60px; gap: 12px; padding: 0 16px; }
  .ca .sh-brand b { font-size: 1rem; }
  .ca .sh-brand small { font-size: .6rem; }
  .ca a.sh-phone { font-size: .85rem; }
}
@media (max-width: 400px) { .ca a.sh-phone { display: none; } }

/* ---------- Hero with lead form (hf-) ---------- */
.ca .hf { position: relative; isolation: isolate; overflow: hidden; background: var(--ca-navy); color: var(--ca-white); padding: clamp(40px, 6vw, 72px) var(--ca-inset) clamp(36px, 5vw, 64px); }
.ca .hf-img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.ca .hf::before { content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(0, 40, 66, .95) 0%, rgba(0, 40, 66, .86) 45%, rgba(0, 40, 66, .55) 100%); }
.ca .hf-wrap { max-width: var(--ca-content); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; align-items: center; }
.ca .hf-wrap > * { min-width: 0; }
.ca .hf .ca-crumbs ol { margin-bottom: 18px; }
.ca .hf-eyebrow { display: block; font-size: .78rem; font-weight: 600; line-height: 1.4; letter-spacing: .18em; text-transform: uppercase; color: var(--ca-mist); margin: 0 0 14px; }
.ca .hf h1 { font-size: clamp(2.2rem, 1.6rem + 2.4vw, 3.9rem); line-height: 1.04; letter-spacing: -.025em; margin: 0 0 18px; color: var(--ca-white); }
.ca .hf-answer { font-size: var(--ca-lead); line-height: 1.5; margin: 0; max-width: 620px; }
.ca ul.hf-proof { list-style: none; display: grid; gap: 10px; margin: 0; }
.ca ul.hf-proof li { position: relative; padding-left: 28px; color: var(--ca-mist); }
.ca ul.hf-proof li strong { color: var(--ca-white); }
.ca ul.hf-proof li::before { content: "\2713"; position: absolute; left: 0; top: 0; font-weight: 700; color: var(--ca-white); }
.ca .hf-links { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 26px; }
.ca .hf-links a.hf-textlink { color: var(--ca-white); text-decoration: underline; text-underline-offset: 4px; }
.ca .hf-caption { font-size: .72rem; line-height: 1.4; margin: 18px 0 0; opacity: .75; }

/* the form card */
.ca .hf-card { width: 100%; max-width: 460px; justify-self: center; background: var(--ca-white); color: var(--ca-navy); padding: 26px 26px 20px; box-shadow: 0 30px 70px -25px rgba(0, 0, 0, .6); scroll-margin-top: 90px; border-radius: var(--ca-radius-card); }
.ca .hf-card h2 { font-family: var(--ca-font-head); font-size: 1.6rem; line-height: 1.15; letter-spacing: -.02em; margin: 0; color: var(--ca-navy); }
.ca .hf-card-lead { margin: 6px 0 0; font-size: .875rem; line-height: 1.45; color: var(--ca-slate); }
.ca .hf-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; margin-top: 16px; }
.ca .hf-form > * { min-width: 0; }
.ca .hf-full { grid-column: 1 / -1; }
.ca .hf-form label { display: block; margin: 0 0 4px; font-size: .7rem; font-weight: 700; line-height: 1.2; letter-spacing: .1em; text-transform: uppercase; color: var(--ca-navy); }
.ca .hf-form input[type="text"], .ca .hf-form input[type="tel"], .ca .hf-form input[type="email"], .ca .hf-form select, .ca .hf-form textarea {
  display: block; width: 100%; height: 46px; margin: 0; padding: 0 12px;
  font: 400 16px/normal var(--ca-font-body); color: var(--ca-navy);
  background-color: #f6f7f8; border: 1px solid #c9ced3; border-radius: 6px; box-shadow: none;
  -webkit-appearance: none; appearance: none;
}
.ca .hf-form textarea { height: 110px; padding: 10px 12px; resize: vertical; }
.ca .hf-form select { padding-right: 30px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23002842' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; }
.ca .hf-form input:focus, .ca .hf-form select:focus, .ca .hf-form textarea:focus { outline: none; border-color: var(--ca-navy); background-color: var(--ca-white); box-shadow: 0 0 0 3px rgba(0, 40, 66, .18); }
.ca .hf-form [aria-invalid="true"] { border-color: #b3261e; }
.ca .hf-err { margin: 4px 0 0; font-size: 12px; line-height: 1.3; color: #b3261e; }
.ca .hf-err:empty { display: none; }
.ca .hf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ca .hf-form button[type="submit"] {
  display: block; width: 100%; height: 52px; margin: 0; padding: 0 16px; border: 0; border-radius: var(--ca-radius-btn); cursor: pointer;
  background: var(--ca-navy); color: var(--ca-white); font: 600 1rem/1 var(--ca-font-body); letter-spacing: .01em;
  transition: background-color .2s, transform .2s;
}
.ca .hf-form button[type="submit"]:hover { background: #0b3a5a; transform: translateY(-1px); }
.ca .hf-form button[type="submit"]:focus-visible { outline: 2px solid var(--ca-navy); outline-offset: 3px; }
.ca .hf-form button[disabled] { opacity: .7; cursor: wait; transform: none; }
.ca .hf-fine { grid-column: 1 / -1; margin: 0; text-align: center; font-size: 13px; line-height: 1.4; color: var(--ca-slate); }
.ca .hf-fine a { color: var(--ca-navy); font-weight: 700; white-space: nowrap; text-decoration: underline; }
.ca .hf-fine.is-error { color: #b3261e; }
.ca .hf-more-toggle { grid-column: 1 / -1; justify-self: start; background: none; border: 0; padding: 0; color: var(--ca-navy); font: 600 .875rem/1.4 var(--ca-font-body); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ca .hf-more { display: contents; }
.ca .hf-more[hidden] { display: none; }

/* compact photo button: drag and drop on desktop, camera or library on phones */
.ca .hf-form label.hf-photo { position: relative; display: flex; align-items: center; justify-content: center; gap: 8px; height: 46px; margin: 0; cursor: pointer;
  font: 500 15px/1 var(--ca-font-body); letter-spacing: 0; text-transform: none; color: var(--ca-navy);
  background: #f6f7f8; border: 1px dashed #9aa3ab; border-radius: 6px; transition: border-color .2s, background-color .2s; }
.ca .hf-form label.hf-photo:hover, .ca .hf-form label.hf-photo.is-over, .ca .hf-form label.hf-photo:focus-within { border-color: var(--ca-navy); background: var(--ca-white); }
.ca .hf-form label.hf-photo.is-full { opacity: .55; cursor: default; }
.ca .hf-photo input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); border: 0; opacity: 0; }
.ca .hf-photo svg { width: 20px; height: 20px; flex: none; }
.ca .hf-opt { color: var(--ca-slate); }
.ca ul.hf-photo-list { list-style: none; margin: 8px 0 0; display: grid; gap: 6px; }
.ca ul.hf-photo-list:empty { display: none; }
.ca ul.hf-photo-list li { position: relative; display: flex; align-items: center; gap: 10px; padding: 4px 44px 4px 4px; background: var(--ca-white); border: 1px solid var(--ca-hairline); overflow: hidden; font-size: 13px; color: var(--ca-slate); }
.ca ul.hf-photo-list img { width: 36px; height: 36px; flex: none; object-fit: cover; background: var(--ca-hairline); }
.ca .hf-photo-bar { position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--ca-navy); transition: width .2s; }
.ca .hf-photo-list .is-done .hf-photo-bar, .ca .hf-photo-list .is-err .hf-photo-bar { display: none; }
.ca .hf-photo-list .is-done .hf-photo-status { color: var(--ca-navy); font-weight: 600; }
.ca .hf-photo-list .is-err { border-color: #b3261e; }
.ca .hf-photo-list .is-err .hf-photo-status { color: #b3261e; }
.ca .hf-photo-del { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: #f6f7f8; color: var(--ca-navy); font-size: 20px; line-height: 1; cursor: pointer; }
.ca .hf-done h2 { margin-bottom: 8px; }
.ca .hf-done p { font-size: 15px; margin: 0; }
.ca .hf-done p + p { margin-top: 10px; }

/* desktop: copy left, card right */
@media (min-width: 1024px) {
  .ca .hf-wrap { grid-template-columns: minmax(0, 1fr) 440px; grid-template-areas: "head form" "rest form"; column-gap: 64px; row-gap: 0; }
  .ca .hf-head { grid-area: head; align-self: end; }
  .ca .hf-rest { grid-area: rest; align-self: start; margin-top: 28px; }
  .ca .hf-wrap > .hf-card { grid-area: form; }
}
/* phones: headline, then the form straight away, then the rest */
@media (max-width: 767px) {
  .ca .hf { padding: 18px 16px 32px; }
  .ca .hf::before { background: linear-gradient(0deg, rgba(0, 40, 66, .96) 0%, rgba(0, 40, 66, .9) 70%, rgba(0, 40, 66, .75) 100%); }
  .ca .hf-wrap { gap: 14px; }
  .ca .hf .ca-crumbs, .ca .hf-eyebrow, .ca .hf-answer { display: none; }
  .ca .hf h1 { font-size: clamp(1.6rem, 7.2vw, 2.1rem); margin: 0; }
  .ca .hf-card { padding: 16px 16px 14px; }
  .ca .hf-card h2 { font-size: 1.25rem; }
  .ca .hf-card-lead { font-size: 13px; }
  .ca .hf-form { gap: 8px 10px; margin-top: 12px; }
  .ca .hf-fine { font-size: 12px; }
  .ca .hf-links .ca-btn { width: 100%; }
}

/* ---------- Plain page hero (about, contact, legal) ---------- */
.ca .ph { background: var(--ca-navy); color: var(--ca-white); padding: clamp(40px, 6vw, 80px) var(--ca-inset); }
.ca .ph-in { max-width: var(--ca-content); margin-inline: auto; }
.ca .ph h1 { color: var(--ca-white); font-size: clamp(2.2rem, 1.6rem + 2.4vw, 3.6rem); line-height: 1.05; margin: 0 0 16px; }
.ca .ph p { max-width: 700px; font-size: var(--ca-lead); }

/* contact page: form + details side by side */
.ca .ct { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: start; }
@media (min-width: 1024px) { .ca .ct { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; } }
.ca .ct .hf-card { max-width: none; justify-self: stretch; box-shadow: 0 20px 50px -25px rgba(0, 0, 0, .35); border: 1px solid var(--ca-hairline); }

/* person card */
.ca .pc { display: grid; grid-template-columns: 120px 1fr; gap: 20px; align-items: center; margin-top: 32px; }
.ca .pc img { width: 120px; height: 150px; object-fit: cover; border-radius: var(--ca-radius-card); }
.ca .pc p { margin: 0; }

/* honest note */
.ca .note { border-left: 4px solid var(--ca-navy); background: var(--ca-grad-centre); padding: 18px 22px; margin: 28px 0 0; font-size: .95rem; }
.ca .ca-bg-navy .note { background: rgba(255, 255, 255, .08); border-left-color: var(--ca-mist); }

/* area cards on the light background: dark borders and chips */
.ca .ca-bg-light .ca-area, .ca .ca-bg-white .ca-area { border-color: rgba(0, 40, 66, .25); background: var(--ca-white); }
.ca .ca-bg-light ul.ca-chips li, .ca .ca-bg-white ul.ca-chips li { border-color: rgba(0, 40, 66, .3); }
.ca .ca-area .ca-card-link { display: inline-block; margin-top: 14px; font-size: .875rem; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* map + legend */
.ca .osm-map { --om-ink: #002842; --om-accent: #6f9bb8; --om-accent-ink: #0b3a5a; --om-water: #b9d3e3; --om-water-ink: #2d5f80; --om-font: "Poppins", system-ui, sans-serif; }
.ca .map-grid { display: grid; grid-template-columns: 1fr; gap: 32px; margin-top: 40px; align-items: start; }
@media (min-width: 1024px) { .ca .map-grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 48px; } }
.ca .map-grid h3 { font-family: var(--ca-font-body); font-size: .75rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; margin: 0 0 10px; }
.ca .map-grid ul.ca-chips { margin: 0 0 24px; }
.ca .map-grid ul.ca-chips a { text-decoration: none; }
.ca .map-grid ul.ca-chips a:hover { text-decoration: underline; }

/* ---------- Footer ---------- */
.ca .sf { background: #001a2c; color: var(--ca-mist); padding: clamp(48px, 6vw, 72px) var(--ca-inset) 28px; font-size: .9rem; }
.ca .sf-in { max-width: var(--ca-content); margin-inline: auto; display: grid; grid-template-columns: 1fr; gap: 32px; }
@media (min-width: 900px) { .ca .sf-in { grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; } }
.ca .sf h2 { font-family: var(--ca-font-body); font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ca-white); margin: 0 0 14px; }
.ca .sf ul { list-style: none; display: grid; gap: 8px; }
.ca .sf a { color: var(--ca-white); }
.ca .sf a:hover { text-decoration: underline; }
.ca .sf-brand b { display: block; font-family: var(--ca-font-head); font-size: 1.15rem; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; color: var(--ca-white); margin-bottom: 10px; }
.ca .sf-legal { max-width: var(--ca-content); margin: 40px auto 0; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .15); font-size: .78rem; line-height: 1.6; opacity: .85; }
.ca .sf-legal p { margin: 0 0 6px; }

/* the CKS mobile bar is sticky at the end of .ca: keep it under the footer content */
.ca .ca-mobilebar a.ca-btn { text-decoration: none; }

/* map legend: compact columns (24 suburbs) */
.ca .osm-map-legend { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 6px; }
.ca .osm-map-legend li { padding: .35rem .6rem; gap: .5rem; font-size: .85rem; }
.ca .osm-map-legend__n { width: 1.45rem; height: 1.45rem; font-size: .75rem; }
@media (max-width: 767px) { .ca .map-councils { display: none; } }
/* contact: short title band so the form is above the fold */
.ca .ph--tight { padding-block: clamp(20px, 3vw, 36px); }
.ca .ph--tight h1 { font-size: clamp(1.8rem, 1.4rem + 1.6vw, 2.8rem); margin-bottom: 8px; }
.ca .ph--tight p { font-size: 1rem; }
@media (max-width: 767px) { .ca .ph--tight p, .ca .ph--tight .ca-crumbs { display: none; } .ca .ph--tight h1 { margin: 0; } }
/* photo button: wrap cleanly on narrow cards */
.ca .hf-form label.hf-photo { height: auto; min-height: 46px; padding: 6px 12px; text-align: center; line-height: 1.25; }

/* =====================================================================
   Elements from the CKS knock-down-rebuild ads landing page (lp-), 2026-10-14
   ===================================================================== */
/* hero additions */
.ca .lp-award { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; }
.ca .lp-award img { width: 56px; height: 56px; border-radius: 50%; flex: none; }
.ca .lp-award b { display: block; font-size: .9rem; }
.ca .lp-award span span { display: block; font-size: .8rem; opacity: .85; line-height: 1.4; }
.ca .lp-award--dark { margin-bottom: 14px; }
.ca .hf-tag { font-family: var(--ca-font-head); font-weight: 700; font-size: clamp(1.3rem, 1rem + 1vw, 1.75rem); letter-spacing: -.01em; margin: 0 0 12px; color: var(--ca-white); }
.ca .lp-risk { display: flex; gap: 10px; align-items: flex-start; margin: 18px 0 0; font-size: .875rem; color: var(--ca-mist); max-width: 60ch; }
.ca .lp-risk svg { flex: none; margin-top: 3px; }
.ca .lp-ba { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 22px; max-width: 560px; }
.ca .lp-ba figure { position: relative; margin: 0; border-radius: 6px; overflow: hidden; }
.ca .lp-ba img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.ca .lp-ba figcaption { position: absolute; left: 8px; top: 8px; background: rgba(0, 40, 66, .85); color: var(--ca-white); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: 4px 8px; border-radius: 4px; }
.ca .lp-ba-cap { grid-column: 1 / -1; font-size: .75rem; line-height: 1.4; margin: 2px 0 0; opacity: .85; }
@media (max-width: 767px) {
  .ca .lp-award { margin-bottom: 10px; gap: 10px; }
  .ca .lp-award img { width: 40px; height: 40px; }
  .ca .lp-award b { font-size: .8rem; }
  .ca .lp-award span span { font-size: .7rem; }
  .ca .hf .hf-tag { display: none; }
}

/* shared */
.ca .lp-lead { font-size: 1.1rem; line-height: 1.55; max-width: 62ch; }
.ca .lp-h3 { font-family: var(--ca-font-head); font-size: var(--ca-h4); margin: 56px 0 16px; }
.ca .lp-btns { margin-top: 28px; }
.ca ul.lp-ticks { list-style: none; margin: 0 0 var(--ca-stack); }
.ca ul.lp-ticks li { position: relative; padding-left: 30px; margin-bottom: 10px; }
.ca ul.lp-ticks li::before { content: "\2713"; position: absolute; left: 0; top: 2px; width: 20px; height: 20px; border-radius: 50%; background: rgba(255, 255, 255, .16); text-align: center; font-size: .75rem; line-height: 20px; font-weight: 700; }
.ca .ca-bg-white ul.lp-ticks li::before, .ca .ca-bg-light ul.lp-ticks li::before { background: rgba(0, 40, 66, .12); }
@media (min-width: 768px) { .ca ul.lp-ticks--2 { columns: 2; column-gap: 40px; } .ca ul.lp-ticks--2 li { break-inside: avoid; } }
.ca ul.lp-ticks--center { display: inline-block; text-align: left; margin-top: 18px; }
.ca ul.lp-reassure { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 20px; margin: 10px 0 0; font-size: .875rem; color: var(--ca-mist); }
.ca ul.lp-reassure li::before { content: "\2022"; margin-right: 8px; opacity: .6; }
.ca .lp-grid { display: grid; grid-template-columns: 1fr; gap: 20px; margin-top: 40px; }
@media (min-width: 768px) { .ca .lp-grid--3, .ca .lp-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .ca .lp-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ca .lp-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ca .lp-card { background: var(--ca-white); color: var(--ca-navy); border: 1px solid var(--ca-hairline); border-radius: var(--ca-radius-card); padding: 26px; min-width: 0; }
.ca .lp-card h3 { font-family: var(--ca-font-body); font-size: 1rem; font-weight: 700; letter-spacing: 0; line-height: 1.4; margin: 0 0 10px; }
.ca .lp-card p:last-child { margin-bottom: 0; }
.ca .ca-bg-navy .lp-card--line { background: transparent; color: var(--ca-white); border-color: rgba(255, 255, 255, .28); }
.ca .lp-num { display: block; font-family: var(--ca-font-head); font-weight: 700; font-size: clamp(1.9rem, 1.5rem + 1.2vw, 2.6rem); line-height: 1; letter-spacing: -.02em; margin-bottom: 12px; }

/* credentials */
.ca ul.lp-creds { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1000px; }
@media (min-width: 900px) { .ca ul.lp-creds { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ca .lp-creds li { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.ca .lp-cred-num { display: block; font-family: var(--ca-font-head); font-size: 2rem; font-weight: 800; line-height: 66px; height: 66px; }
.ca .lp-creds a { text-decoration: underline; }

/* videos (Wistia) */
.ca .lp-video { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--ca-radius-card); background: #000; }
.ca .lp-video wistia-player { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.ca .lp-presenter { margin: 14px 0 0; font-size: .85rem; color: var(--ca-mist); }
.ca .lp-presenter b { display: block; font-family: var(--ca-font-head); font-size: 1.2rem; color: var(--ca-white); }
.ca .lp-story { padding: 0; overflow: hidden; }
.ca .lp-story .lp-video { border-radius: 0; }
.ca .lp-story-body { padding: 18px 22px 22px; }
.ca .lp-story-body > b { display: block; font-family: var(--ca-font-head); font-size: 1.35rem; }
.ca .lp-story-body > span { display: block; font-size: .8rem; color: var(--ca-slate); margin-bottom: 10px; }
.ca .lp-story blockquote p, .ca .lp-review blockquote p { font-size: .95rem; line-height: 1.55; margin: 0; }
.ca .lp-story cite, .ca .lp-review figcaption { display: block; margin-top: 10px; font-size: .8rem; font-style: normal; color: var(--ca-slate); }
.ca .lp-review { margin: 0; }
.ca .lp-review figcaption b { display: block; color: var(--ca-navy); font-size: .9rem; }
.ca .lp-stars { display: block; color: #b7791f; letter-spacing: 2px; font-size: 1.1rem; margin-bottom: 10px; }

/* compare table: stacked cards on phones */
.ca .lp-compare thead th:last-child, .ca .lp-compare td:last-child { background: rgba(0, 40, 66, .06); font-weight: 600; }
@media (max-width: 767px) {
  .ca .lp-compare-wrap { border: 0; background: none; overflow: visible; }
  .ca .lp-compare { min-width: 0; }
  .ca .lp-compare caption, .ca .lp-compare thead { display: none; }
  .ca .lp-compare, .ca .lp-compare tbody, .ca .lp-compare tr, .ca .lp-compare th, .ca .lp-compare td { display: block; width: 100%; }
  .ca .lp-compare tr { background: var(--ca-white); border-radius: 6px; padding: 14px 16px; margin: 0 0 12px; }
  .ca .lp-compare tbody th { width: 100%; font-family: var(--ca-font-head); font-size: 1.15rem; padding: 0 0 8px; border-bottom: 1px solid var(--ca-hairline); }
  .ca .lp-compare td { border: 0; padding: 6px 0; display: grid; grid-template-columns: 110px 1fr; gap: 12px; font-size: .9rem; }
  .ca .lp-compare td::before { content: attr(data-label); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: .7; padding-top: 2px; }
  .ca .lp-compare td:last-child { border-radius: 6px; padding: 8px 10px; margin-top: 4px; }
}

/* recent work */
.ca .lp-proj { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; margin-top: 32px; }
@media (min-width: 1024px) { .ca .lp-proj { grid-template-columns: 1.25fr 1fr; } }
.ca .lp-proj-gal { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ca .lp-proj-gal a { display: block; border-radius: 6px; overflow: hidden; }
.ca .lp-proj-gal a:first-child { grid-column: 1 / -1; }
.ca .lp-proj-gal img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .4s ease; }
.ca .lp-proj-gal a:hover img { transform: scale(1.03); }
.ca .lp-proj h3 { font-size: var(--ca-h4); margin: 0 0 12px; }
.ca a.lp-pcard { display: block; padding: 0; overflow: hidden; text-decoration: none; }
.ca .lp-pcard img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .4s ease; }
.ca a.lp-pcard:hover img { transform: scale(1.03); }
.ca .lp-pcard span { display: block; padding: 14px 18px 18px; font-size: .8rem; color: var(--ca-slate); }
.ca .lp-pcard span b { display: block; font-family: var(--ca-font-head); font-size: 1.2rem; color: var(--ca-navy); margin-bottom: 2px; }
@media (prefers-reduced-motion: reduce) { .ca .lp-proj-gal img, .ca .lp-pcard img { transition: none; } }

/* team quote */
.ca .lp-quote { margin: 20px 0 0; padding-left: 18px; border-left: 3px solid var(--ca-navy); }
.ca .lp-quote p { font-size: 1.05rem; font-style: italic; margin: 0 0 6px; }
.ca .lp-quote cite { font-size: .8rem; font-style: normal; font-weight: 700; }
.ca #team .ca-media img { border-radius: var(--ca-radius-card); }

/* hero card sits at the top on desktop, so a tall left column (before/after) never pushes the form down */
@media (min-width: 1024px) { .ca .hf-wrap { align-items: start; } .ca .hf-wrap > .hf-card { align-self: start; margin-top: 8px; } .ca .hf-head { align-self: start; } }
/* service names fit the select (Knockdown rebuild) */
.ca .hf-form select { padding: 0 26px 0 10px; background-position: right 9px center; }

/* final CTA contact list (landing-page element) */
.ca ul.lp-contact { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px 28px; max-width: 900px; margin: 32px auto 0; padding: 22px 0 0; border-top: 1px solid rgba(255, 255, 255, .22); text-align: left; font-size: .95rem; }
.ca ul.lp-contact li span { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; opacity: .7; margin-bottom: 2px; }
.ca ul.lp-contact a { text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }

/* osm-svg-maps: service-area map. Tokens first; change them to the site's house style. */
.osm-map {
  --om-ink: #072436; --om-accent: #52C3DE; --om-accent-ink: #116998; --om-muted: #6B6B6B; --om-line: #E4E4E4;
  --om-land: #EEF1F3; --om-outline: #F9FAFB; --om-water: #A8D8EC; --om-water-ink: #2F7FA3;
  --om-major: #F2B14C; --om-minor: #C9D1D7; --om-road-ink: #8A5A12; --om-base: #FFC93C;
  --om-font: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  margin: 0; padding: .75rem; border: 1px solid var(--om-line); border-radius: 10px; background: #FFFFFF;
  box-shadow: 0 15px 45px rgba(0, 0, 0, .09); font-family: var(--om-font);
}
.osm-map svg { display: block; width: 100%; height: auto; border-radius: 6px; }
.osm-map figcaption { margin-top: .6rem; font-size: .85rem; line-height: 1.5; color: var(--om-muted); }
.osm-map figcaption a { color: var(--om-accent-ink); }
.osm-map__bg { fill: var(--om-land); }
.osm-map__outline { fill: var(--om-outline); stroke: #9AA7B0; stroke-width: 1.5; stroke-dasharray: 6 5; }
.osm-map__waters { pointer-events: none; }
.osm-map__water { fill: var(--om-water); stroke: #7FC3DE; stroke-width: 1; }
.osm-map__waterlabel { fill: var(--om-water-ink); font: italic 600 13px var(--om-font); text-anchor: middle; }
.osm-map__road { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.osm-map__road--minor { stroke: var(--om-minor); stroke-width: 2; }
.osm-map__road--major { stroke: var(--om-major); stroke-width: 3.5; }
.osm-map__roadlabel { fill: var(--om-road-ink); font: 700 11px var(--om-font); text-anchor: middle; paint-order: stroke; stroke: var(--om-outline); stroke-width: 3px; stroke-linejoin: round; }
.osm-map__area { fill: rgba(82, 195, 222, .22); stroke: var(--om-accent-ink); stroke-width: 1.6; transition: fill .15s; }
.osm-map a .osm-map__area { cursor: pointer; }
.osm-map a:hover .osm-map__area, .osm-map a:focus-visible .osm-map__area { fill: rgba(82, 195, 222, .5); }
.osm-map a:focus { outline: none; }
.osm-map a:focus-visible .osm-map__area { stroke: var(--om-ink); stroke-width: 3; }
.osm-map__area.is-current { fill: rgba(82, 195, 222, .75); stroke: var(--om-ink); stroke-width: 2.5; }
.osm-map__labels { pointer-events: none; }
.osm-map__label { fill: var(--om-ink); font: 700 14px var(--om-font); text-anchor: middle; dominant-baseline: middle; paint-order: stroke; stroke: rgba(255, 255, 255, .9); stroke-width: 3.5px; stroke-linejoin: round; }
.osm-map__label.is-current { font-size: 16px; }
.osm-map__num { display: none; fill: var(--om-ink); font: 800 34px var(--om-font); text-anchor: middle; dominant-baseline: middle; paint-order: stroke; stroke: #FFFFFF; stroke-width: 7px; stroke-linejoin: round; }
.osm-map__base circle { fill: var(--om-ink); stroke: #FFFFFF; stroke-width: 2.5; }
.osm-map__base .osm-map__base-dot { fill: var(--om-base); stroke: none; }
.osm-map__baselabel { fill: var(--om-ink); font: 800 13px var(--om-font); paint-order: stroke; stroke: #FFFFFF; stroke-width: 3.5px; stroke-linejoin: round; }
.osm-map-legend { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .5rem; font-family: var(--om-font, inherit); }
.osm-map-legend li { display: flex; align-items: center; gap: .65rem; padding: .55rem .8rem; border: 1px solid #E4E4E4; border-radius: 6px; background: #FFFFFF; }
.osm-map-legend li[aria-current] { border-color: #52C3DE; box-shadow: inset 4px 0 0 #52C3DE; }
.osm-map-legend__n { flex: none; display: grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: #0D4466; color: #FFFFFF; font-size: .85rem; font-weight: 700; }
.osm-map-legend a { font-weight: 700; color: #072436; }
.osm-map-legend__note { margin-left: auto; font-size: .9rem; color: #6B6B6B; white-space: nowrap; }
/* Phones: the whole map shrinks to ~1/3, so names become unreadable. Show numbers that match the legend. */
@media (max-width: 699px) {
  .osm-map { padding: .5rem; }
  .osm-map__label, .osm-map__roadlabel, .osm-map__waterlabel, .osm-map__baselabel { display: none; }
  .osm-map__num { display: inline; }
  .osm-map__base circle { r: 16px; }
  .osm-map__base .osm-map__base-dot { r: 7px; }
}

/* =====================================================================
   Nowra Builders theme: a CKS Projects SIBLING (user, 2026-10-15: "more consistent with the main brand,
   not exactly the same"). Kept from CKS: navy ink and dark bands, Urbanist + Poppins, the dark photo hero
   with the white form card, white header, CKS button shape and section rhythm.
   Nowra's own touches: an ochre accent (buttons, kickers, ticks, links), warm sand light sections instead
   of the CKS grey gradient, and slightly softer card corners.
   The previous fully custom theme is in _work/2026-10-15/backups/theme-unique-2026-10-14.css. ASCII only.
   ===================================================================== */
.ca.t-nowra {
  --nb-ochre: #b4532a;         /* 4.8:1 on white */
  --nb-ochre-dark: #8f3f1d;
  --nb-ochre-light: #e9a57f;   /* on navy only */
  --nb-sand: #f4efe6;
  --ca-radius-card: 10px;
}

/* light sections: warm sand instead of the CKS grey gradient */
.ca.t-nowra .ca-bg-light { background: var(--nb-sand); }

/* accent: kickers, primary buttons, ticks, card links */
.ca.t-nowra .ca-kicker { color: var(--nb-ochre); }
.ca.t-nowra .ca-bg-navy .ca-kicker { color: var(--nb-ochre-light); }
.ca.t-nowra .ca-btn--navy { background: var(--nb-ochre); }
.ca.t-nowra .ca-btn--navy:hover { background: var(--nb-ochre-dark); }
.ca.t-nowra .ca-bg-navy .ca-btn-row .ca-btn--outline:first-child { background: var(--nb-ochre); border-color: var(--nb-ochre); color: #fff; }
.ca.t-nowra .ca-bg-navy .ca-btn-row .ca-btn--outline:first-child:hover { background: var(--nb-ochre-dark); border-color: var(--nb-ochre-dark); }
.ca.t-nowra .ca-card .ca-card-link, .ca.t-nowra .ca-area .ca-card-link, .ca.t-nowra .ca-case .ca-card-link { color: var(--nb-ochre); }
.ca.t-nowra .ca-tag { color: var(--nb-ochre); opacity: 1; }
.ca.t-nowra .ca-bg-navy .ca-tag { color: var(--nb-ochre-light); }
.ca.t-nowra .ca-step-num { color: var(--nb-ochre-light); }
.ca.t-nowra .ca-faq summary::after { color: var(--nb-ochre); }
.ca.t-nowra .note { border-left-color: var(--nb-ochre); }
.ca.t-nowra .lp-stars, .ca.t-nowra .lp-num { color: var(--nb-ochre); }
.ca.t-nowra .lp-quote { border-left-color: var(--nb-ochre); }
.ca.t-nowra .lp-ba figcaption { background: var(--nb-ochre); }
.ca.t-nowra .ca-case .ca-label b { color: var(--nb-ochre); }

/* cards: white on sand, soft corners */
.ca.t-nowra .ca-card, .ca.t-nowra .lp-card, .ca.t-nowra .ca-area { border-radius: var(--ca-radius-card); }
.ca.t-nowra .ca-card-media { border-radius: var(--ca-radius-card) var(--ca-radius-card) 0 0; overflow: hidden; }
.ca.t-nowra .ca-bg-light ul.ca-chips li, .ca.t-nowra .ca-bg-white ul.ca-chips li { background: #fff; }
.ca.t-nowra .ca-bg-navy .lp-card--line { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .28); }

/* header: CKS white bar, ochre tagline */
.ca.t-nowra .sh-brand small { color: var(--nb-ochre); font-weight: 600; }
.ca.t-nowra .sh .ca-btn--navy { background: var(--nb-ochre); }

/* hero: CKS dark photo hero, ochre ticks and submit */
.ca.t-nowra .hf-eyebrow { color: var(--nb-ochre-light); }
.ca.t-nowra ul.hf-proof li::before { color: var(--nb-ochre-light); }
.ca.t-nowra .hf-form button[type="submit"] { background: var(--nb-ochre); }
.ca.t-nowra .hf-form button[type="submit"]:hover { background: var(--nb-ochre-dark); }
.ca.t-nowra .hf-form input:focus, .ca.t-nowra .hf-form select:focus, .ca.t-nowra .hf-form textarea:focus { border-color: var(--nb-ochre); box-shadow: 0 0 0 3px rgba(180, 83, 42, .18); }
.ca.t-nowra .hf-card { border-top: 4px solid var(--nb-ochre); }

/* plain page hero: CKS navy with an ochre rule */
.ca.t-nowra .ph { border-bottom: 4px solid var(--nb-ochre); }

/* map: tall north-south area, keep the column narrow */
.ca.t-nowra .osm-map { --om-accent: #e2a07c; --om-accent-ink: #8f3f1d; }
.ca.t-nowra .map-frame { max-width: 470px; margin-inline: auto; width: 100%; }
.ca.t-nowra .map-grid h3 a { text-decoration: none; }
.ca.t-nowra .map-grid h3 a:hover { text-decoration: underline; }
@media (min-width: 1024px) { .ca.t-nowra .map-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }

/* footer: CKS dark, ochre headings */
.ca.t-nowra .sf h2 { color: var(--nb-ochre-light); }
.ca.t-nowra .ca-mobilebar .ca-btn--solid { background: var(--nb-ochre); color: #fff; }

/* contact: tighter top so the submit sits above a 900px laptop fold */
.ca.t-nowra .ph--tight + .ca-section--sm { padding-top: 22px; }
