
:root{--navy:#102b46;--ink:#10263b;--teal:#007078;--ice:#edf3f4;--line:#d8e2e5;--muted:#435b6c;--paper:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:system-ui,Segoe UI,sans-serif;line-height:1.55}img{display:block;max-width:100%;height:auto}a{color:var(--teal);font-weight:650}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #007d85;outline-offset:4px}h1,h2,h3,p{margin:0 0 .75em}h1,h2,h3{line-height:1.08;letter-spacing:-.035em}h1{font-size:clamp(2.65rem,6vw,5rem)}h2{font-size:clamp(2rem,4vw,3.2rem)}h3{font-size:1.35rem}.wrap{--wrap-gutter:clamp(20px,5vw,64px);max-width:1240px;margin:auto;padding-inline:var(--wrap-gutter)}.section{padding-block:clamp(46px,8vw,96px)}.top{border-bottom:1px solid var(--line)}.bar,.brand,nav,.actions{display:flex;align-items:center;gap:16px}.bar{justify-content:space-between;min-height:76px}.brand{text-decoration:none;color:var(--navy);white-space:nowrap;letter-spacing:.045em}.brand img{width:40px}.top nav a{text-decoration:none;color:var(--navy)}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:40px;background:var(--teal);border:1px solid var(--teal);color:white;text-decoration:none;padding:6px 18px;font:inherit;font-weight:700;border-radius:6px;cursor:pointer}.top nav .button{color:white}.button.small{padding-inline:12px}.ghost{background:transparent;border-color:#9db6bf;color:var(--navy)}.hero{background:var(--ice)}.hero-grid,.split,.columns,.fields,.foot,.category-grid{display:grid;gap:clamp(20px,4vw,48px)}.hero-grid{grid-template-columns:1.1fr 1fr;align-items:center}.eyebrow{color:var(--teal);font-size:.76rem;letter-spacing:.1em;font-weight:800;margin-bottom:1rem}.intro{font-size:1.1rem;max-width:54ch;color:var(--muted)}.actions{flex-wrap:wrap;margin-top:24px}.hero-photo{background:#dfe6e9;position:relative;overflow:hidden;border-radius:10px}.hero-photo img{width:100%;aspect-ratio:1.15;object-fit:cover}.hero-photo span{position:absolute;top:12px;left:12px;background:#fff;color:var(--navy);font-size:.66rem;font-weight:800;letter-spacing:.1em;padding:6px 9px;border-radius:3px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:16px}.card{border:1px solid var(--line);border-radius:8px;overflow:hidden;text-decoration:none;color:var(--ink);transition:border-color .15s}.card:hover{border-color:var(--teal)}.card>div{padding:14px}.card h3{display:flex;justify-content:space-between;gap:6px}.card span{color:var(--teal)}.card p{font-size:.93rem;color:var(--muted);margin:0}.fine{font-size:.88rem;color:var(--muted);margin-top:12px}.soft{background:var(--ice)}.columns,.split,.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.columns article{border-top:2px solid var(--teal);padding-top:16px}.number{display:block;font-weight:800;color:var(--teal);margin-bottom:10px}.category-grid{align-items:center}.category-grid figure{margin:0}.category-grid img{border-radius:8px}.crumb{display:inline-block;margin-bottom:22px}.narrow{max-width:850px}.narrow h1{font-size:clamp(2.4rem,5vw,4rem)}form{margin-top:24px;border:1px solid var(--line);padding:clamp(16px,4vw,32px);border-radius:8px}.fields{grid-template-columns:1fr 1fr;gap:16px}label{display:grid;gap:5px;font-weight:650}.wide{grid-column:1/-1}input,select,textarea{min-width:0;width:100%;border:1px solid #9aadb6;border-radius:5px;background:white;color:var(--ink);font:inherit;padding:9px}form button{margin-top:8px}details{border-bottom:1px solid var(--line);padding:14px 0;max-width:800px}summary{cursor:pointer;font-weight:700}details p{margin:12px 0 0}footer{background:var(--navy);color:white;padding:32px 0}.foot{grid-template-columns:1fr auto auto;align-items:start}.foot a{color:white;display:block}.foot p{margin:.35em 0}.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:10px;background:white;padding:10px;z-index:5}
@media(max-width:760px){.hero-grid,.columns,.split,.category-grid{grid-template-columns:1fr}.foot{grid-template-columns:1fr;gap:12px}.hero-photo img{aspect-ratio:1.5}}@media(max-width:480px){.fields{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.card h3{font-size:1.15rem}.card p{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.compact-section {
  padding-block: clamp(24px, 4vw, 40px);
}

.merchandise-section {
  background: linear-gradient(115deg, #fff7e8, #f6e5c5);
  border-top: 1px solid rgb(0 112 120 / 22%);
  border-bottom: 1px solid var(--navy);
}

main > section:first-child,
main > article:first-child > header.hero {
  border-bottom: 1px solid rgb(0 112 120 / 22%);
}

.hero-grid {
  padding-block: clamp(28px, 4.5vw, 48px);
}

.hero h1,
main > section:first-child > .category-grid h1 {
  margin-bottom: clamp(10px, 1.5vw, 20px);
}

.home-primary-action {
  width: min(100%, 13.5rem);
  text-align: center;
}

@media (max-width: 760px) {
  .hero-copy {
    display: contents;
  }

  .hero-copy .intro {
    margin-bottom: 0;
  }

  .hero-grid .actions {
    order: 1;
    margin-top: 0;
  }

  .hero-grid .actions .button,
  .about-details .actions .button,
  .home-primary-action {
    width: 100%;
  }

  .hero-photo span {
    top: 10px;
    right: 10px;
    left: auto;
    padding: 4px 6px;
    font-size: .55rem;
  }
}

.arrow-link {
  text-decoration: none;
}

.arrow-link:is(:hover, :focus-visible) .arrow-link-label {
  text-decoration: underline;
  text-underline-offset: 4px;
}

:root {
  --soft-edge-glow: 0 0 0 1px rgb(255 255 255 / 75%), 0 0 18px rgb(0 112 120 / 18%);
  --soft-depth-shadow: 0 12px 24px rgb(16 43 70 / 20%);
}

.service-image,
.contact-packing-image,
.about-company,
.about-services article,
.contact-enquiry {
  box-shadow: var(--soft-edge-glow), var(--soft-depth-shadow);
}

/* Home services */
#services > .wrap > .eyebrow {
  text-align: center;
}

#services > .wrap > h2 {
  margin-bottom: calc(.75em + 8px);
  text-align: center;
}

#services .columns > article:first-child {
  border-top: 0;
  padding-top: 18px;
}

.columns > .service-printing {
  border-top: 0;
  padding-top: 0;
}

.service-printing > :last-child {
  margin-bottom: 0;
}

.service-image {
  width: 100%;
  border-radius: 8px;
}

#services p + .service-image,
#services .service-image + .number {
  margin-top: 18px;
}

@media (max-width: 760px) {
  #services > .wrap > .eyebrow,
  #services > .wrap > h2 {
    text-align: left;
  }

  #services > .wrap > h2 {
    margin-bottom: 24px;
  }

  #services .columns > article:first-child {
    padding-top: 0;
  }

  .service-printing {
    display: flex;
    flex-direction: column;
  }

  .service-printing > .service-image {
    order: 1;
    margin-top: 18px;
  }

  #services .service-printing > .number {
    margin-top: 0;
  }
}

@media (min-width: 900px) {
  #services .columns {
    --service-gap: clamp(20px, 4vw, 48px);
    --image-overlap: 20%;
    --image-offset: calc((var(--service-gap) + var(--image-overlap)) / 2);
    --service-copy-clearance: calc(var(--image-overlap) - var(--image-offset) + 16px);
    gap: var(--service-gap);
    isolation: isolate;
  }

  #services article:first-child .service-image {
    --soft-depth-shadow: 0 16px 28px rgb(16 43 70 / 25%);
    position: relative;
    z-index: 1;
    transform: translateX(var(--image-offset));
  }

  #services .service-printing .service-image {
    transform: translateX(calc(-1 * var(--image-offset)));
  }

  #services article:first-child > :is(.number, h3, p) {
    margin-inline: var(--image-offset) var(--service-copy-clearance);
  }

  #services .service-printing > :is(.number, h3, p) {
    margin-inline: var(--service-copy-clearance) var(--image-offset);
  }
}

/* Home about section */
.about-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px clamp(24px,4vw,48px);align-items:start;padding-block:clamp(40px,6vw,72px)}
.about-section>.eyebrow{grid-column:1/-1;margin:0}
.about-section>h2{max-width:18ch;margin:0;position:relative;top:-6px}
.about-copy{min-width:0;max-width:56ch}
.about-copy p{margin:0 0 20px}
.about-copy>a{display:inline-flex;align-items:center;gap:8px}
@media(max-width:760px){.about-section{grid-template-columns:1fr;gap:20px}.about-section>h2{top:0}.about-copy{max-width:60ch}}

/* About page */
.about-hero .intro {
  margin-bottom: 0;
}

.about-hero .hero-photo img {
  aspect-ratio: 16 / 10;
}

.about-services {
  gap: 20px;
}

.about-services article {
  padding: clamp(16px, 2vw, 22px);
  border: 1px solid var(--line);
  border-top: 2px solid var(--teal);
  border-radius: 12px;
  background: var(--paper);
}

.about-services article > p {
  margin-bottom: 6px;
}

.about-services article > a,
.about-company > a {
  font-size: .8125rem;
}

.about-details {
  display: grid;
  gap: clamp(28px, 6vw, 72px);
  align-items: start;
}

.about-details p {
  max-width: 62ch;
}

.about-company {
  padding: clamp(20px, 4vw, 32px);
  border-top: 2px solid var(--teal);
  border-radius: 8px;
  background: var(--paper);
}

.about-company address {
  margin-bottom: 1em;
  font-style: normal;
}

@media (min-width: 761px) {
  .about-services {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .about-services article {
    display: flex;
    flex-direction: column;
  }

  .about-services article > a {
    align-self: flex-start;
    margin-top: auto;
  }

  .about-details {
    grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr);
  }
}

/* Home delivery summary */
.delivery-section{padding-block:clamp(40px,6vw,72px)}
.delivery-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px}
.delivery-heading h2{max-width:22ch;margin-bottom:16px}
.delivery-heading .intro{max-width:62ch;margin:0}
.delivery-policy-link {
  flex: none;
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  min-height: 24px;
  gap: 6px;
  font-size: .75rem;
}
.delivery-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.delivery-option{padding:clamp(22px,3vw,32px);border:1px solid var(--line);border-radius:12px}
.delivery-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:20px;border-radius:10px;background:var(--ice);color:var(--teal)}
.delivery-icon svg{width:26px;height:26px}
.delivery-option h3{margin-bottom:12px}
.delivery-option p{max-width:48ch;margin:0;color:var(--muted)}
.delivery-timing{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:center;gap:24px;margin-top:20px;padding:24px 28px;border-radius:10px;background:var(--ice)}
.delivery-timing-label{margin:0 0 6px;font-size:.8125rem;font-weight:700;color:var(--teal)}
.delivery-timing-value{margin:0;font-size:1.25rem;font-weight:750;line-height:1.4}
.delivery-timing-value span{display:block;font-size:.875rem;font-weight:500;color:var(--muted)}
.delivery-timing>p{margin:0;color:var(--muted);font-size:.9375rem}
@media(max-width:1000px){.delivery-heading{align-items:flex-start;flex-direction:column;gap:18px}}
@media (max-width: 760px) {
  .delivery-options, .delivery-timing { grid-template-columns: 1fr; }
  .delivery-timing { gap: 16px; padding: 22px; }
}

.onboarding-heading h1 {
  font-size: clamp(2.4rem, 5vw, 4rem);
}

.onboarding-heading .intro {
  margin-bottom: 0;
}

#onboard {
  --field-height: 40px;
  --focus-width: 2px;
  --focus-offset: 3px;
  /* Leave six pixels of clear space beyond the outer focus ring. */
  --control-clearance: calc(var(--focus-width) + var(--focus-offset) + 6px);
  margin-top: 0;
}

@media (max-width: 760px) {
  #onboard {
    border: 0;
    padding: 0;
  }
}

#onboard label {
  gap: var(--control-clearance);
  align-content: start;
  min-inline-size: 0;
}

#onboard :is(.fields, .address-locality) > * {
  min-inline-size: 0;
}

#onboard .required-mark {
  color: #a32632;
  font-weight: 700;
}

#onboard :is(.field-error, .field-hint) {
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: calc(100% + 3px);
  font-size: .8125rem;
  line-height: 1.3;
  font-weight: 500;
  white-space: nowrap;
  text-align: left;
}

#onboard .field-error {
  color: #a32632;
}

#onboard :is(.email-field, .postal-field) {
  display: grid;
  align-content: start;
  gap: var(--control-clearance);
  position: relative;
}

#onboard .field-hint {
  color: var(--muted);
}

#onboard input:disabled {
  background: var(--ice);
  color: var(--muted);
  cursor: not-allowed;
}

#onboard input[aria-invalid="true"] {
  border-color: #a32632;
}

#onboard :is(.fields, .address-locality) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: max(16px, calc(2 * var(--control-clearance)));
  align-items: start;
}

.address-locality {
  display: grid;
}

@media (max-width: 480px) {
  #onboard :is(.fields, .address-locality) {
    grid-template-columns: 1fr;
  }
}

#onboard > button[type="submit"] {
  display: flex;
  min-width: 180px;
  margin-top: 24px;
  margin-inline-start: auto;
}

@media (max-width: 480px) {
  #onboard > button[type="submit"] {
    width: 100%;
    min-width: 0;
  }
}

#onboard button:focus-visible {
  outline: var(--focus-width) solid var(--teal);
  outline-offset: var(--focus-offset);
}

#onboard :is(input, select, textarea, .picker-trigger):focus-visible {
  outline: none;
  border-color: #64748b;
}

#onboard input[aria-invalid="true"]:focus-visible {
  border-color: #a32632;
}

#onboard :is(input, select) {
  block-size: var(--field-height);
  padding-block: 6px;
}

#onboard textarea {
  block-size: 64px;
  max-width: 100%;
  padding-block: 6px;
  resize: vertical;
}

#onboard select {
  cursor: pointer;
}

#onboard select:hover,
#onboard select:open {
  border-color: #64748b;
}

#onboard select:invalid {
  color: var(--muted);
}

@supports (appearance: base-select) and selector(::picker(select)) {
  #onboard select,
  #onboard select::picker(select) {
    appearance: base-select;
  }

  #onboard select::picker-icon {
    color: var(--teal);
  }

  #onboard select:open::picker-icon {
    rotate: 180deg;
  }

  #onboard select::picker(select) {
    inline-size: anchor-size(width);
    margin-block: var(--control-clearance);
    padding: 5px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--paper);
    color: var(--ink);
    box-shadow: 0 10px 28px rgb(16 43 70 / 15%);
  }

  #onboard option {
    min-height: 42px;
    padding: 8px 10px;
    border-radius: 6px;
    font-weight: 500;
  }

  #onboard option[value=""] {
    color: var(--muted);
  }

  #onboard option:checked {
    background: var(--ice);
    font-weight: 650;
  }

  #onboard .flag-select > button {
    margin: 0;
  }

  #onboard .flag-select :is(option, selectedcontent) {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  #onboard option::checkmark {
    order: 1;
    margin-inline-start: auto;
    color: var(--teal);
  }

  #onboard option:hover,
  #onboard option:focus-visible {
    background: var(--ice);
    outline: 2px solid #64748b;
    outline-offset: -2px;
  }
}

.estimate-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: end;
  gap: var(--control-clearance);
  position: relative;
}

.quantity-field,
.whatsapp-number-field {
  display: grid;
  position: relative;
  min-inline-size: 0;
}

.whatsapp-field {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: var(--control-clearance);
  position: relative;
}

.country-field {
  display: grid;
  gap: var(--control-clearance);
  position: relative;
}

#onboard .picker-trigger {
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 0;
  min-width: 0;
  block-size: var(--field-height);
  padding: 0 7px;
  border: 1px solid #9aadb6;
  border-radius: 5px;
  background: white;
  color: var(--ink);
  font: inherit;
  cursor: pointer;
}

#onboard .picker-trigger[hidden],
#address-country[hidden] {
  display: none;
}

.picker-trigger::after {
  content: "";
  margin-inline-start: auto;
  border-inline: 5px solid transparent;
  border-top: 7px solid var(--teal);
}

.picker-trigger[aria-expanded="true"]::after {
  rotate: 180deg;
}

#onboard .country-flag {
  flex: none;
  width: 20px;
  height: 15px;
}

.country-picker {
  position: absolute;
  z-index: 1;
  inset-inline: 0;
  inset-block-start: calc(100% + var(--control-clearance));
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  box-shadow: 0 10px 28px rgb(16 43 70 / 15%);
}

.picker-options {
  max-block-size: 240px;
  margin-block-start: var(--control-clearance);
  overflow: auto;
}

.picker-option {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 7px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: var(--ink);
  font: inherit;
  text-align: start;
  cursor: pointer;
}

.picker-option[hidden] {
  display: none;
}

.picker-option:hover,
.picker-option.is-active {
  background: var(--ice);
}

.picker-option[aria-selected="true"] {
  font-weight: 700;
}

.picker-empty {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: .88rem;
}

#onboard .whatsapp-field > label {
  display: block;
  grid-column: 1 / -1;
}

.estimate-label {
  grid-column: 1 / -1;
  white-space: nowrap;
}

.estimate-divider {
  display: grid;
  place-items: center;
  min-height: var(--field-height);
  color: var(--muted);
}


/* Contact page */
.top nav a:is([aria-current="page"],[aria-current="location"]){text-decoration:underline;text-underline-offset:5px}

.top nav .button {
  line-height: 1.2;
  white-space: nowrap;
}

.menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--paper);
  color: var(--navy);
  cursor: pointer;
}

.menu-toggle[aria-expanded="true"] {
  background: var(--ice);
}

@media (max-width: 820px) {
  .top .bar {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    min-height: 64px;
    padding-block: 10px;
  }

  .top .brand {
    justify-self: start;
    gap: 8px;
    font-size: .875rem;
  }

  .top .brand img {
    width: 36px;
  }

  .menu-toggle:not([hidden]) {
    display: inline-flex;
  }

  .menu-toggle[aria-expanded="false"]:not([hidden]) + nav {
    display: none;
  }

  .top nav {
    grid-column: 1 / -1;
    justify-self: end;
    width: 100%;
    max-width: 220px;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 6px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-size: .9375rem;
  }

  .menu-toggle:not([hidden]) + nav {
    position: absolute;
    z-index: 10;
    inset-block-start: calc(100% - 8px);
    inset-inline-end: var(--wrap-gutter);
    grid-column: auto;
    width: calc(100% - 2 * var(--wrap-gutter));
    max-height: calc(100dvh - 72px);
    overflow-y: auto;
    background: var(--paper);
    box-shadow: 0 8px 24px rgb(16 43 70 / 15%);
  }

  .top nav a:not(.button) {
    display: flex;
    align-items: center;
    min-height: 44px;
  }

  .top nav .button {
    margin-block: 8px 4px;
  }
}
.contact-heading .intro{max-width:58ch;margin-bottom:0}
.contact-grid{display:grid;grid-template-areas:"details enquiry";grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,48px);align-items:start;padding-block:clamp(36px,5vw,64px)}
.contact-details{grid-area:details;display:grid;gap:24px;min-width:0;color:var(--navy)}
.contact-details article{min-width:0}
.contact-details .eyebrow{margin-bottom:10px;color:var(--teal)}
.contact-details article>:last-child{margin-bottom:0}
.contact-details a{overflow-wrap:anywhere}
.contact-details a[href^="tel:"],.contact-details a[href^="mailto:"]{color:var(--navy);text-decoration:none}
.contact-details a[href^="tel:"]:is(:hover,:focus-visible),.contact-details a[href^="mailto:"]:is(:hover,:focus-visible){text-decoration:underline;text-underline-offset:4px}
.contact-details .fine{color:var(--muted)}
.contact-details h2{font-size:clamp(1.5rem,3vw,2.2rem);letter-spacing:-.02em}
.contact-details h2 a{text-decoration:none}
.contact-details address{color:var(--navy);font-style:normal;font-size:1.1rem}
.contact-packing-image{width:100%;border-radius:8px}
.contact-enquiry{grid-area:enquiry;background:var(--ice);border:1px solid var(--line);border-radius:8px;padding:clamp(24px,4vw,40px)}
.contact-enquiry h2{font-size:clamp(1.8rem,3vw,2.5rem)}
.contact-enquiry .button{margin-top:12px}
#contact-form{margin-top:24px;padding:0;border:0}
#contact-form .fields,#quote-form .fields{gap:20px}
#contact-form .fields{grid-template-columns:1fr}
#contact-form .required-mark{color:#a32632}
#contact-form textarea,#quote-form textarea{resize:vertical}
#request-quote{padding-block-start:clamp(16px,3vw,24px)}
.quote-photo{display:none;max-width:420px;margin:0}
@media (min-width: 900px) {
  #request-quote {
    display: grid;
    grid-template-areas: "photo form";
    grid-template-columns: minmax(0, 3fr) minmax(0, 5fr);
    align-items: start;
    gap: clamp(24px, 4vw, 48px);
    max-width: 1240px;
  }

  .quote-content{grid-area:form}
  .quote-photo{display:block;grid-area:photo}
}
#quote-form{margin-top:0}
@media (width < 900px) {
  #quote-form{padding:0;border:0}
}
#quote-form .fields{grid-template-columns:repeat(2,minmax(0,1fr))}
#quote-form .fields > *{min-width:0}
#quote-form label .fine{margin-top:0;font-weight:400}
#contact-form > button[type="submit"],#quote-form > button[type="submit"]{display:flex;min-width:180px;margin-top:24px;margin-inline-start:auto}
#contact-form > button:disabled,#quote-form > button:disabled{opacity:.65;cursor:wait}
@media(max-width:480px){#contact-form > button[type="submit"],#quote-form > button[type="submit"]{width:100%;min-width:0}}
@media (max-width: 760px) {
  #quote-form .fields{grid-template-columns:1fr}

  .contact-grid {
    grid-template-areas: "enquiry" "details";
    grid-template-columns: 1fr;
  }

  .contact-enquiry {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .contact-details {
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--ice);
    box-shadow: var(--soft-edge-glow), var(--soft-depth-shadow);
  }
}

/* Privacy notice and preferences */
.cookie-banner{position:fixed;z-index:20;inset:auto 20px 20px;max-width:1160px;margin-inline:auto;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 40px rgb(16 43 70 / 18%);padding:24px;display:flex;align-items:center;gap:24px;max-height:calc(100dvh - 40px);overflow:auto}
.cookie-banner[hidden]{display:none}
.cookie-banner-copy{flex:1;min-width:0}
.cookie-banner h2{font-size:1.35rem;letter-spacing:-.02em;margin-bottom:8px}
.cookie-banner p{margin:0;font-size:.9375rem;color:var(--muted)}
.cookie-actions{display:flex;flex-wrap:wrap;gap:12px}
.cookie-banner .cookie-actions{flex:none}
.cookie-actions .button{font-size:.9375rem;margin:0}
.cookie-dialog{width:calc(100% - 32px);max-width:660px;max-height:calc(100dvh - 40px);padding:clamp(20px,4vw,32px);border:1px solid var(--line);border-radius:14px;color:var(--ink);box-shadow:0 20px 60px rgb(16 43 70 / 22%)}
.cookie-dialog::backdrop{background:rgb(16 43 70 / 55%)}
.cookie-dialog-header{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:16px}
.cookie-dialog h2{font-size:clamp(1.6rem,4vw,2rem);margin:0}
.cookie-dialog h3{font-size:1.05rem;letter-spacing:0;margin:0;line-height:1.4}
.cookie-close{flex:none;width:40px;height:40px;border:1px solid var(--line);border-radius:6px;background:white;color:var(--navy);font:inherit;font-size:1.6rem;cursor:pointer;line-height:1}
.cookie-category{padding:18px 0;border-top:1px solid var(--line)}
.cookie-category>div{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.cookie-category p{margin:8px 0 0;font-size:.9375rem;color:var(--muted)}
.cookie-badge{background:var(--ice);color:var(--teal);padding:3px 8px;border-radius:4px;font-size:.75rem;font-weight:700;white-space:nowrap}
.cookie-badge.muted{color:var(--muted)}
.cookie-analytics-choice{display:flex;align-items:center;gap:8px;font-size:.9375rem;cursor:pointer}
.cookie-analytics-choice input{width:20px;height:20px;accent-color:var(--teal)}
.cookie-actions button:disabled{opacity:.6;cursor:not-allowed}
.cookie-modal-open{overflow:hidden}
.cookie-announcement{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.cookie-policy h1{font-size:clamp(2.5rem,5vw,4rem)}
.cookie-policy h2{font-size:1.6rem;margin-top:36px;letter-spacing:-.02em}
.cookie-policy p{max-width:80ch}
.privacy-nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin-block:24px}
.legal-heading>:last-child{margin-bottom:0}
.legal-content{padding-top:32px}
.legal-content>.privacy-nav{margin-top:0}
.legal-content>h2:first-child{margin-top:0}
.form-privacy{line-height:1.5;margin:24px 0 0;max-width:80ch}
#onboard .newsletter-choice{display:flex;align-items:flex-start;gap:8px;margin-top:12px;cursor:pointer;font-size:.875rem;line-height:1.5;font-weight:400}
#onboard .newsletter-choice input[type="checkbox"]{flex:0 0 16px;width:16px;height:16px;block-size:16px;min-height:0;margin:2.5px 0 0;padding:0;accent-color:var(--teal)}
.newsletter-choice + .form-privacy{margin-top:12px}
.form-feedback:empty{display:none}
.form-feedback{display:flex;align-items:flex-start;gap:12px;margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);scroll-margin-block:24px}
.form-feedback-icon{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:50%;font-size:1.125rem;font-weight:700;background:var(--ice);color:var(--teal)}
.form-feedback strong{display:block;font-size:1rem;line-height:1.5;letter-spacing:0}
.form-feedback p{margin:6px 0 0;font-size:.875rem;line-height:1.6;color:var(--muted)}
.form-feedback--success{background:#eef8f5;border-color:#9fcfc1}
.form-feedback--success .form-feedback-icon{background:#d5eee5;color:#16634b}
.form-feedback--error{background:#fff6f4;border-color:#e3b5aa}
.form-feedback--error .form-feedback-icon{background:#f8dfd8;color:#963c29}
.form-feedback:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
@media(max-width:480px){.form-feedback{padding:16px;gap:10px}}

/* Shared footer */
footer{padding-top:40px;padding-bottom:0}
.foot{grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr));gap:40px}
.footer-company strong{display:block;letter-spacing:.035em}
.footer-company small{display:block;margin-top:6px;color:#c5d6e1;font-size:.8125rem}
.footer-company p{margin-top:16px;max-width:30ch;color:#dce7ee;font-size:.9375rem}
.footer-nav{display:block;min-width:0}
.footer-nav h2{margin:0 0 14px;font-size:.875rem;line-height:1.5;letter-spacing:.04em;color:#c5d6e1}
.footer-nav ul{display:grid;gap:8px;list-style:none;padding:0;margin:0}
.footer-nav a{display:inline-block;text-decoration:none;font-size:.9375rem;line-height:1.5;font-weight:500;padding-block:3px;text-underline-offset:4px}
.footer-nav a:hover,.footer-nav a:focus-visible{text-decoration:underline}
.footer-bottom-shell{margin-top:32px;border-top:1px solid #35516a}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 24px;padding-block:16px;font-size:.8125rem;color:#c5d6e1}
.footer-bottom p{margin:0}
.footer-bottom .footer-credit{display:inline;color:#ff9b42;font-weight:650;text-decoration:none;white-space:nowrap}
.footer-bottom a.footer-credit:hover,.footer-bottom a.footer-credit:focus-visible{text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px){.foot{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.footer-company{grid-column:1/-1}}
@media (max-width: 760px) {
  .footer-bottom-shell {
    margin-top: 24px;
  }

  .footer-bottom {
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding-block-start: 10px;
    text-align: center;
  }

  .footer-bottom p + p {
    font-size: .625rem;
  }
}
@media(max-width:360px){.foot{grid-template-columns:1fr}}
.cookie-table-scroll{overflow-x:auto;margin-block:20px}
.cookie-inventory{width:100%;border-collapse:collapse;font-size:.9375rem}
.cookie-inventory caption{text-align:left;font-weight:700;margin-bottom:12px}
.cookie-inventory th,.cookie-inventory td{padding:14px;border:1px solid var(--line);vertical-align:top;text-align:left}
.cookie-inventory th{background:var(--ice)}
.cookie-inventory code{overflow-wrap:anywhere}
@media(max-width:1000px){.cookie-banner{align-items:stretch;flex-direction:column;gap:16px}}
@media(max-width:480px){.cookie-banner{inset-inline:12px;bottom:12px;padding:18px;max-height:calc(100dvh - 24px)}.cookie-actions{flex-direction:column}.cookie-actions .button{width:100%}.cookie-dialog{max-height:calc(100dvh - 24px)}}

/* Blog */
.blog-list-title {
  display: flex;
  align-items: center;
  gap: 12px;
}

.blog-list-title > span {
  line-height: 1;
  transform: translateY(-.04em);
}

.blog-heading-icon {
  flex: none;
  width: clamp(48px, 5vw, 64px);
  height: clamp(48px, 5vw, 64px);
  padding: clamp(8px, 1vw, 12px);
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--paper);
  color: var(--teal);
}

.blog-heading h1 {
  max-width: 21ch;
  font-size: clamp(2.4rem, 5vw, 4rem);
}

.blog-heading .intro {
  margin-bottom: 0;
}

.blog-list {
  padding-block-start: clamp(24px, 4vw, 40px);
}

.blog-list h2 {
  margin-bottom: 24px;
}

.blog-list > article:not([hidden]) ~ article:not([hidden]) {
  margin-top: 20px;
}

.blog-pagination {
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 24px;
}

.blog-pagination[hidden] {
  display: none;
}

.blog-pagination a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding-inline: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  text-decoration: none;
}

.blog-pagination a:hover {
  border-color: var(--teal);
}

.blog-pagination a[aria-current="page"] {
  background: var(--teal);
  border-color: var(--teal);
  color: var(--paper);
}

.blog-card {
  display: grid;
  grid-template-areas: "cover copy";
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: center;
  border-color: #e1e9ea;
}

.blog-card:hover {
  border-color: #aec8ca;
}

.blog-card > img {
  grid-area: cover;
}

.blog-card img,
.blog-cover img {
  width: 100%;
}

.blog-card > .blog-card-copy {
  grid-area: copy;
  padding: clamp(20px, 3.5vw, 36px);
}

.blog-card-copy .eyebrow {
  margin-bottom: 12px;
  font-size: .76rem;
  color: var(--teal);
  text-transform: uppercase;
}

.blog-card-copy h3 {
  display: block;
  font-size: clamp(1.55rem, 3vw, 2.3rem);
}

.blog-card-copy > p:not(.eyebrow) {
  font-size: 1rem;
}

.blog-read-link {
  display: inline-block;
  margin-top: 20px;
  font-weight: 750;
}

.blog-article-heading {
  padding-block: clamp(18px, 2.5vw, 28px) clamp(36px, 6vw, 72px);
}

.blog-article-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-bottom: 18px;
}

.blog-article-meta .blog-back-link {
  margin-inline-start: auto;
}

.blog-back-link {
  display: inline-block;
  padding-block: 4px;
  font-size: .8125rem;
  line-height: 1.55;
}

.blog-article-meta .eyebrow {
  margin: 0;
  padding: 5px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
}

.blog-cover {
  margin-block: clamp(24px, 5vw, 56px);
}

.blog-cover img {
  border-radius: 10px;
}

.blog-list,
.blog-content {
  padding-block-end: clamp(28px, 4.5vw, 48px);
}

.blog-content {
  line-height: 1.7;
}

.blog-content h2 {
  margin-top: 1.55em;
  font-size: clamp(1.45rem, 3vw, 2rem);
  line-height: 1.2;
  scroll-margin-top: 1rem;
}

.blog-content h3 {
  margin-top: 1.35em;
  font-size: 1.15rem;
  line-height: 1.35;
}

.blog-content ul {
  padding-inline-start: 1.4em;
}

.blog-content li + li {
  margin-top: .35em;
}

.blog-contents,
.blog-tip {
  padding: 16px 20px;
  border-radius: 8px;
  background: var(--ice);
}

.blog-contents {
  margin-top: 28px;
  border: 1px solid var(--line);
}

.blog-contents ul {
  margin-bottom: 0;
}

.blog-contents a {
  text-underline-offset: 3px;
}

.blog-tip {
  border-inline-start: 3px solid var(--teal);
}

.blog-byline {
  margin: 32px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: clamp(.6875rem, 3.2vw, .9375rem);
  white-space: nowrap;
}

.blog-back {
  margin: 16px 0 0;
}

@media (min-width: 761px) {
  .blog-card > img {
    height: 100%;
    min-height: 0;
    object-fit: cover;
  }

  .blog-list > article:nth-of-type(even) > .blog-card {
    grid-template-areas: "copy cover";
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  }

  .blog-article-heading {
    padding-block-end: clamp(24px, 3vw, 32px);
  }

  .blog-article-heading h1 {
    max-width: none;
  }

  .blog-cover {
    margin-block-start: clamp(16px, 2vw, 24px);
  }
}

@media (max-width: 760px) {
  .blog-list > article:not([hidden]) ~ article:not([hidden]) {
    margin-top: 16px;
  }

  .blog-card {
    grid-template-areas: "cover" "copy";
    grid-template-columns: 1fr;
  }

  .blog-card > img {
    height: clamp(112px, 37vw, 168px);
    object-fit: cover;
  }

  .blog-card > .blog-card-copy {
    padding: 14px 16px;
  }

  .blog-card-copy .eyebrow {
    margin-bottom: 8px;
  }

  .blog-card-copy h3 {
    margin-bottom: 8px;
    font-size: clamp(1.2rem, 4vw, 1.45rem);
  }

  .blog-card-copy > p:not(.eyebrow),
  .blog-read-link {
    font-size: .875rem;
  }

  .blog-read-link {
    margin-top: 10px;
  }
}
