.turnkey-header { background:rgba(255,255,255,.88); }
.turnkey-hero { position:relative; min-height:100svh; overflow:hidden; display:grid; place-items:center; color:#fff; background:#0c4444; }
.turnkey-hero-slides { position:absolute; inset:0; display:flex; width:300%; animation:turnkeySwipe 24s infinite ease-in-out; }
.turnkey-hero-slide { position:relative; width:33.333%; flex:0 0 33.333%; overflow:hidden; }
.turnkey-hero-slide img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.turnkey-hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(20,25,24,.58),rgba(20,25,24,.16) 60%,rgba(20,25,24,.3)); }
.turnkey-hero-content { position:relative; z-index:1; width:min(100% - 40px,1000px); padding:100px 0 40px; text-align:center; }.turnkey-hero-content .eyebrow { color:#fff; }.turnkey-hero-content h1 { max-width:860px; margin:0 auto; font-family:"DM Sans",Arial,sans-serif; font-size:clamp(26px,3.6vw,56px); line-height:1.08; letter-spacing:-.05em; }.turnkey-hero-content h1 span { color:rgba(255,255,255,.6); }.turnkey-hero-content h1 em { display:block; margin-top:12px; font-family:"Playfair Display",Georgia,serif; font-weight:500; }
.turnkey-hero-content .turnkey-hero-lede { max-width:600px; margin:22px auto 0; color:rgba(255,255,255,.85); font-size:clamp(14px,1.5vw,17px); line-height:1.6; }
/* Slim band under the hero: frames turnkey as the step beyond a package and
   points anyone after a ready-made room back to the sensory catalog. */
.turnkey-pathway { padding:32px 7vw; text-align:center; background:#fffaf3; border-bottom:1px solid rgba(12,68,68,.12); }
.turnkey-pathway p { max-width:760px; margin:0 auto; color:#0c4444; font-size:15px; line-height:1.6; }
.turnkey-pathway a { color:#6f222a; text-decoration:underline; text-underline-offset:4px; }
.turnkey-pathway a:hover { color:#0c4444; }
@keyframes turnkeySwipe { 0%,27% { transform:translateX(0); } 33%,60% { transform:translateX(-33.333%); } 66%,93% { transform:translateX(-66.666%); } 100% { transform:translateX(0); } }
.services-intro { padding:clamp(80px,10vw,140px) 7vw; background:#f7f7f4; }.service-page-heading { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:end; max-width:1200px; margin:0 auto 64px; }.service-page-heading .eyebrow { grid-column:1/-1; margin:0; color:#6f222a; }.service-page-heading h2 { margin:0; font-size:clamp(55px,7vw,100px); line-height:.85; letter-spacing:-.065em; }.service-page-heading h2 span,.enquiry-heading h2 span { color:#6f222a; }.service-page-heading > p:last-child { max-width:400px; margin:0; color:#59635d; line-height:1.65; }
.service-page-grid { display:grid; grid-template-columns:repeat(3,1fr); max-width:1200px; margin:0 auto; border-top:1px solid rgba(23,23,23,.2); border-bottom:1px solid rgba(23,23,23,.2); }.service-page-grid article { min-height:235px; padding:27px 28px 28px 0; border-right:1px solid rgba(23,23,23,.2); }.service-page-grid article+article { padding-left:28px; }.service-page-grid article:last-child { border:0; }.service-page-grid span { color:#6f222a; font:10px "DM Mono",monospace; }.service-page-grid h3 { margin:40px 0 16px; font:500 clamp(25px,3vw,38px)/1 "Playfair Display",Georgia,serif; letter-spacing:-.04em; }.service-page-grid p { max-width:240px; margin:0; color:#59635d; font-size:13px; line-height:1.55; }
.service-workflow { position:relative; display:grid; grid-template-columns:repeat(5,1fr); gap:14px; max-width:1200px; margin:70px auto 0; }/* Dots are left-aligned in each 1fr column at (radius) from the column edge,
   so span from the first dot's centre (10px) to the last dot's centre: one
   column minus a radius from the right. col = (100% - 4*14px gap)/5 =
   20% - 11.2px, minus 10px radius. */
.service-workflow-line { position:absolute; top:38px; left:10px; right:calc(20% - 21px); height:1px; background:#d0b28e; }.service-workflow > div:not(.service-workflow-line) { position:relative; z-index:1; display:flex; flex-direction:column; gap:16px; }.service-workflow b { color:#6f222a; font:10px "DM Mono",monospace; }.service-workflow i { width:19px; height:19px; border:1px solid #6f222a; border-radius:50%; background:#f7f7f4; box-shadow:0 0 0 6px #f7f7f4; }.service-workflow strong { font-size:13px; font-weight:500; }
.enquiry-section { padding:clamp(80px,10vw,140px) 7vw; display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:center; background:#e8eee8; }.enquiry-heading .eyebrow { color:#6f222a; }.enquiry-heading h2 { margin:0 0 24px; font-size:clamp(55px,7vw,100px); line-height:.85; letter-spacing:-.065em; }.enquiry-heading > p:last-child { max-width:350px; color:#59635d; line-height:1.65; }.enquiry-card { width:100%; max-width:500px; padding:38px; background:#fff; box-shadow:0 18px 48px rgba(23,23,23,.1); }.form-step { display:none; }.form-step.active { display:flex; flex-direction:column; animation:formIn .35s ease both; }.form-count { margin-bottom:40px; color:#6f222a; font:10px "DM Mono",monospace; letter-spacing:.14em; }.form-step label { margin-bottom:17px; font:500 clamp(20px,2.5vw,30px)/1.1 "Playfair Display",Georgia,serif; }.form-step input,.form-step select { width:100%; padding:13px 0; margin-bottom:26px; border:0; border-bottom:1px solid #aeb4ad; background:transparent; color:#171717; font:14px "DM Sans",sans-serif; outline:none; }.form-step select { appearance:auto; }.form-actions { display:flex; justify-content:space-between; gap:10px; }.form-step button { margin:0; padding:13px 16px; border:1px solid #6f222a; background:#6f222a; color:#fff; font:12px "DM Sans",sans-serif; cursor:pointer; }.form-step .form-prev { color:#6f222a; background:transparent; }.form-step button:hover { background:#d0b28e; color:#171717; border-color:#d0b28e; }.form-message { min-height:18px; margin:22px 0 0; font-size:12px; line-height:1.5; }.form-message.success { color:#0c4444; }.form-message.error { color:#6f222a; }@keyframes formIn { from { opacity:0; transform:translateX(15px); } to { opacity:1; transform:translateX(0); } }
@media (max-width:800px) { .service-page-heading,.enquiry-section { display:block; }.service-page-heading > p:last-child { margin-top:26px; }.service-page-grid { grid-template-columns:1fr; }.service-page-grid article,.service-page-grid article+article { min-height:190px; padding:25px 0; border-right:0; border-bottom:1px solid rgba(23,23,23,.2); }.service-page-grid article:last-child { border-bottom:0; }.service-workflow { grid-template-columns:1fr; gap:25px; padding-left:6px; }.service-workflow-line { top:10px; bottom:10px; left:15px; right:auto; width:1px; height:auto; }.service-workflow > div:not(.service-workflow-line) { display:grid; grid-template-columns:19px 1fr; column-gap:16px; row-gap:3px; align-items:start; }.service-workflow i { grid-column:1; grid-row:1; }.service-workflow b { grid-column:2; grid-row:1; }.service-workflow strong { grid-column:2; grid-row:2; }.enquiry-card { margin-top:48px; max-width:none; } }
@media (max-width:500px) { .enquiry-section { padding:70px 24px 80px; }.enquiry-card { padding:28px 23px; }.turnkey-hero-content h1 { font-size:27px; } }

@media (prefers-reduced-motion: no-preference) {
  .turnkey-hero-content, .service-page-heading, .service-page-grid article, .service-workflow, .enquiry-heading, .enquiry-card { animation:turnkeyReveal .7s cubic-bezier(.2,.7,.2,1) both; }
  .service-page-grid article:nth-child(2), .service-workflow > div:nth-child(3), .enquiry-card { animation-delay:.12s; }
  .service-page-grid article:nth-child(3), .service-workflow > div:nth-child(4) { animation-delay:.24s; }
  .service-workflow > div:nth-child(5) { animation-delay:.36s; }
  .service-page-grid article { transition:background .3s ease, transform .3s ease; }
  .service-page-grid article:hover { transform:translateY(-4px); background:rgba(255,255,255,.55); }
  .service-workflow i { animation:workflowPulse 2.8s ease-in-out infinite; }
  .service-workflow > div:nth-child(3) i { animation-delay:.25s; }
  .service-workflow > div:nth-child(4) i { animation-delay:.5s; }
  .service-workflow > div:nth-child(5) i { animation-delay:.75s; }
  /* nth-child(1) is the connector line, so the five dots are children 2–6.
     Handover (child 6) needs the final step of the wave, or it snaps back to
     0s and glows in sync with Onboarding instead of flowing on. */
  .service-workflow > div:nth-child(6) i { animation-delay:1s; }
}
@keyframes turnkeyReveal { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
@keyframes workflowPulse { 0%,100% { transform:scale(1); } 50% { transform:scale(1.18); background:#d0b28e; } }

/* UI refinement layer — soft radius on the enquiry card, pill CTAs. */
.enquiry-card { border-radius:18px; }
.form-step button { border-radius:999px; }
