/* All-on-Four service page presentation. */
.sw4-page {
  --sw4-purple: #31133f;
  --sw4-link: #5b287e;
  --sw4-yellow: #f2b51d;
  --sw4-ink: #171419;
  --sw4-copy: #514d53;
  --sw4-grey: #f4f4f2;
  --sw4-line: #d8d6d4;
  box-sizing: border-box;
  background: #fff;
  color: var(--sw4-copy);
  font: 400 17px/1.75 Montserrat, Arial, sans-serif;
  overflow-x: clip;
}

.sw4-page *, .sw4-page *::before, .sw4-page *::after { box-sizing: border-box; }
.sw4-page img { display: block; height: auto; max-width: 100%; }
.sw4-page h1, .sw4-page h2, .sw4-page h3, .sw4-page h4 {
  color: var(--sw4-ink);
  font-family: inherit;
  font-weight: 600;
  text-align: left;
  text-transform: none;
}
.sw4-page h1 { font-size: clamp(48px, 5.7vw, 78px); letter-spacing: -.055em; line-height: .98; margin: 0; }
.sw4-page h2 { font-size: clamp(36px, 4vw, 54px); letter-spacing: -.042em; line-height: 1.05; margin: 0; }
.sw4-page h3 { font-size: clamp(27px, 2.8vw, 38px); letter-spacing: -.035em; line-height: 1.18; margin: 0; }
.sw4-page h4 { font-size: clamp(21px, 2.2vw, 29px); letter-spacing: -.025em; line-height: 1.45; margin: 0; }
.sw4-page a { color: var(--sw4-link); text-decoration-color: rgba(91,40,126,.38); text-underline-offset: 4px; }
.sw4-page a:hover, .sw4-page a:focus-visible { color: var(--sw4-purple); text-decoration-color: var(--sw4-yellow); }
.sw4-page a:focus-visible { outline: 3px solid var(--sw4-yellow); outline-offset: 4px; }
.sw4-shell { margin-inline: auto; width: min(1180px, calc(100% - 64px)); }

.sw4-nav { border-block: 1px solid var(--sw4-line); }
.sw4-nav__inner { display: flex; flex-wrap: wrap; gap: 0 30px; padding-block: 12px; }
.sw4-nav a { color: var(--sw4-purple); display: inline-flex; align-items: center; font-size: 12px; font-weight: 700; letter-spacing: .035em; min-height: 44px; text-decoration: none; }
.sw4-nav a:hover, .sw4-nav a:focus-visible { color: var(--sw4-link); text-decoration: underline; }
.sw4-section { border-top: 1px solid var(--sw4-line); padding-block: clamp(82px,8vw,126px); }
.sw4-section--row-0, .sw4-section--row-4, .sw4-section--row-7 { background: var(--sw4-grey); }
.sw4-section--row-2, .sw4-section--row-6, .sw4-section--row-8, .sw4-section--row-9 { background: #fff; }
.sw4-section--dark { background: var(--sw4-purple); color: #f8f5fa; }
.sw4-section--dark h2, .sw4-section--dark h3, .sw4-section--dark h4 { color: #fff; }
.sw4-section--dark a { color: #fff; text-decoration-color: var(--sw4-yellow); }
.sw4-section__heading { margin-bottom: clamp(35px,4vw,58px); scroll-margin-top: 110px; }
.sw4-section__heading::before { display: block; width: 34px; height: 3px; margin-bottom: 22px; background: var(--sw4-yellow); content: ""; }
.sw4-prose { max-width: 900px; }
.sw4-prose p { color: inherit; font-family: inherit; font-size: inherit; font-weight: 400; line-height: inherit; margin: 0 0 22px; text-align: left; }
.sw4-prose p:last-child { margin-bottom: 0; }
.sw4-prose p:empty { display: none; }
.sw4-prose p:has(> img) { margin-block: 45px; }
.sw4-prose img { margin-inline: auto; }
.sw4-prose ul { margin: 20px 0 34px; padding-left: 1.25em; }
.sw4-prose li { margin-bottom: 14px; padding-left: 5px; text-align: left; }
.sw4-prose iframe { display: block; max-width: 100%; }
.sw4-prose p:has(> iframe) iframe { aspect-ratio: 16 / 9; height: auto; margin-inline: auto; width: min(100%,760px); }
.sw4-prose [style*='text-align: center'] { text-align: left !important; }
.sw4-video-placeholder { aspect-ratio: 16 / 9; background: #21172a; max-width: 900px; overflow: hidden; position: relative; width: 100%; }
.sw4-video-placeholder button { background: #21172a; border: 0; color: #fff; cursor: pointer; display: block; height: 100%; padding: 0; position: relative; width: 100%; }
.sw4-video-placeholder img { height: 100%; inset: 0; object-fit: cover; opacity: .82; position: absolute; width: 100%; }
.sw4-video-placeholder button span { background: var(--sw4-purple); border: 2px solid #fff; border-radius: 999px; font: 700 14px/1.2 Montserrat,Arial,sans-serif; left: 50%; padding: 15px 23px; position: absolute; top: 50%; transform: translate(-50%,-50%); }
.sw4-video-placeholder button:focus-visible, .sw4-map-placeholder button:focus-visible { outline: 3px solid var(--sw4-yellow); outline-offset: -5px; }
.sw4-video-placeholder iframe, .sw4-map-placeholder iframe { border: 0; display: block; height: 100%; inset: 0; position: absolute; width: 100%; }

.sw4-section--row-0 { padding-block: clamp(45px,5vw,76px) clamp(78px,8vw,120px); }
.sw4-hero { align-items: center; display: grid; gap: clamp(36px,5vw,74px); grid-template-columns: minmax(0,1.35fr) minmax(0,.8fr); scroll-margin-top: 110px; }
.sw4-hero__copy { min-width: 0; }
.sw4-hero h1 { margin-bottom: clamp(25px,3vw,38px); }
.sw4-hero__lead { color: #3f3a42; font-size: clamp(18px,1.7vw,22px); line-height: 1.58; }
.sw4-hero__lead p { margin-bottom: 18px; }
.sw4-hero__photo { overflow: hidden; }
.sw4-hero__photo img { aspect-ratio: 3 / 2; object-fit: cover; object-position: center; width: 100%; }
.sw4-hero__phone { font-size: 14px; font-weight: 700; margin: 17px 0 0; }
.sw4-intro__body { margin-top: clamp(36px,4vw,58px); }
.sw4-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.sw4-button { align-items: center; background: var(--sw4-purple); border: 2px solid var(--sw4-purple); border-radius: 2px; color: #fff !important; display: inline-flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: .015em; line-height: 1.35; min-height: 54px; padding: 14px 25px; text-decoration: none !important; transition: background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease; }
.sw4-button:hover, .sw4-button:focus-visible { background: var(--sw4-yellow); border-color: var(--sw4-yellow); color: var(--sw4-ink) !important; transform: translateY(-2px); }
.sw4-button--secondary { background: transparent; color: var(--sw4-purple) !important; }
.sw4-section--dark .sw4-button--secondary { border-color: #fff; color: #fff !important; }
.sw4-section--dark .sw4-button--secondary:hover, .sw4-section--dark .sw4-button--secondary:focus-visible { border-color: var(--sw4-yellow); color: var(--sw4-ink) !important; }

.sw4-section--row-1 .sw4-prose > p:has(> strong):not(:has(> a)) { border-top: 1px solid rgba(255,255,255,.25); color: #fff; font-size: clamp(20px,1.8vw,25px); font-weight: 600; letter-spacing: -.025em; line-height: 1.3; margin-top: 42px; padding-top: 28px; }
.sw4-section--row-1 .sw4-prose > p:has(> strong):first-child { margin-top: 0; }
.sw4-section--row-1 .sw4-actions { border-top: 1px solid rgba(255,255,255,.25); padding-top: 38px; }
.sw4-section--row-1 .sw4-button:not(.sw4-button--secondary) { background: var(--sw4-yellow); border-color: var(--sw4-yellow); color: var(--sw4-ink) !important; }
.sw4-process-video { margin-top: clamp(45px,6vw,78px); max-width: 900px; }

.sw4-subheading { color: var(--sw4-purple); font-size: 15px; font-weight: 700; margin: -20px 0 34px; }
.sw4-list-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin: 42px 0; }
.sw4-list { list-style: none; margin: 0; padding: 0; }
.sw4-list li { border: 1px solid var(--sw4-line); border-left: 3px solid var(--sw4-purple); background: #fff; color: var(--sw4-ink); font-weight: 600; line-height: 1.45; margin: 0 0 12px; padding: 19px 22px; }
.sw4-section--row-2 .sw4-list-grid { max-width: 810px; }
.sw4-section--row-2 .sw4-list li { border-left-color: var(--sw4-yellow); font-size: clamp(19px,2vw,24px); }
.sw4-section--dark .sw4-list li { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.25); border-left-color: var(--sw4-yellow); color: #fff; }
.sw4-list__after { margin-top: 32px; }

.sw4-section--row-3 .sw4-prose { border-left: 4px solid var(--sw4-yellow); max-width: 920px; padding: 12px 0 12px clamp(26px,4vw,55px); }
.sw4-section--row-3 .sw4-prose img { margin: 0 0 28px; max-width: 210px; }
.sw4-section--row-3 .sw4-prose h4 { margin-bottom: 25px; }
.sw4-section--row-3 .sw4-prose h4 span[style] { color: #fff !important; }
.sw4-section--row-3 .sw4-prose h4:last-child { font-size: 15px; letter-spacing: .05em; text-transform: uppercase; }
.sw4-section--row-4 .sw4-list-grid { margin-top: 0; }
.sw4-section--row-5 .sw4-list-grid { max-width: 860px; grid-template-columns: 1fr; }
.sw4-section--row-5 .sw4-prose { max-width: 900px; }
.sw4-section--row-5 .sw4-list li { border-left-color: var(--sw4-yellow); }

.sw4-guarantee { background: var(--sw4-grey); }
.sw4-guarantee__grid { align-items: center; display: grid; gap: clamp(35px,5vw,72px); grid-template-columns: repeat(2,minmax(0,1fr)); }
.sw4-guarantee__copy h2 { margin-bottom: 28px; }
.sw4-guarantee__copy p { max-width: 600px; }
.sw4-guarantee__terms { font-size: 14px !important; font-weight: 700 !important; }
.sw4-guarantee__video { aspect-ratio: 16 / 9; background: #1b1520; overflow: hidden; width: 100%; }
.sw4-guarantee__video iframe { border: 0; display: block; height: 100%; width: 100%; }
.sw4-guarantee > .sw4-shell > .sw4-actions { margin-top: 42px; }

.sw4-jk-profile { align-items: center; display: grid; gap: clamp(34px,5vw,72px); grid-template-columns: minmax(250px,.78fr) minmax(0,1.22fr); margin-inline: auto; max-width: 1080px; }
.sw4-jk-profile__portrait { align-self: start; background: var(--sw4-grey); display: flex; justify-content: center; min-width: 0; }
.sw4-jk-profile__portrait img { height: auto; max-height: 650px; object-fit: contain; object-position: center bottom; width: 100%; }
.sw4-jk-profile__copy { max-width: 680px; }
.sw4-jk-profile__copy h3 { font-size: clamp(28px,3vw,38px); margin: 0 0 8px; }
.sw4-jk-profile__copy p { color: #39343b; font-size: 16px; font-weight: 400; line-height: 1.72; margin: 0 0 18px; text-align: left; }
.sw4-jk-profile__copy .sw4-jk-profile__role { color: var(--sw4-purple); font-size: 18px; font-weight: 700; margin-bottom: 18px; }
.sw4-jk-profile__copy .sw4-jk-profile__credentials { border-left: 3px solid var(--sw4-yellow); color: var(--sw4-purple); font-size: 14px; font-weight: 700; line-height: 1.65; margin: 0 0 25px; padding: 3px 0 3px 16px; }
.sw4-jk-profile__copy .sw4-jk-profile__closing { font-weight: 700; margin-bottom: 0; }
.sw4-jk-profile__actions { margin-top: 22px; }
.sw4-jk-reviews { background: var(--sw4-purple); color: #f8f5fa; }
.sw4-jk-reviews h2 { color: #fff; max-width: 900px; }
.sw4-jk-review-wall__grid { display: grid; gap: 20px; grid-template-columns: repeat(3,minmax(0,1fr)); margin: clamp(36px,4vw,54px) auto 0; max-width: 1080px; }
.sw4-jk-review-wall__grid > figure { border: 1px solid rgba(255,255,255,.26); border-top: 3px solid var(--sw4-yellow); border-radius: 3px; display: flex; flex-direction: column; gap: 24px; justify-content: space-between; margin: 0; min-width: 0; padding: clamp(22px,2.4vw,32px); }
.sw4-jk-review-wall__grid blockquote { border: 0; color: #fff; font-size: clamp(17px,1.45vw,20px); font-style: normal; font-weight: 500; line-height: 1.55; margin: 0; padding: 0; text-align: left; }
.sw4-jk-review-wall__grid figcaption { color: rgba(255,255,255,.82); font-size: 13px; font-weight: 700; letter-spacing: .025em; line-height: 1.45; text-align: left; }
.sw4-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; max-width: 850px; }
.sw4-practice__grid { align-items: start; display: grid; gap: clamp(34px,5vw,70px); grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr); }
.sw4-practice__copy { max-width: 700px; }
.sw4-practice__copy p { color: inherit; font-size: 16px; line-height: 1.72; margin: 0 0 20px; text-align: left; }
.sw4-practice__copy .sw4-practice__closing { font-weight: 700; margin-bottom: 0; }
.sw4-practice__photos { display: grid; gap: 16px; grid-template-columns: repeat(2,minmax(0,1fr)); min-width: 0; }
.sw4-practice__photos img { aspect-ratio: 4 / 5; object-fit: cover; object-position: center 28%; width: 100%; }
.sw4-section--row-8 .sw4-prose { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.sw4-section--row-8 .sw4-prose > p { grid-column: 1 / -1; }
.sw4-section--row-8 .google-maps { aspect-ratio: 4 / 3; min-width: 0; overflow: hidden; }
.sw4-section--row-8 .google-maps iframe { display: block; height: 100%; width: 100%; }
.sw4-map-placeholder { aspect-ratio: 4 / 3; background: #eee; min-width: 0; overflow: hidden; position: relative; width: 100%; }
.sw4-map-placeholder button { background: var(--sw4-purple); border: 0; color: #fff; cursor: pointer; font: 700 14px Montserrat,Arial,sans-serif; min-height: 48px; padding: 12px 20px; position: absolute; right: 15px; top: 15px; z-index: 1; }
body.page-id-4269 #mega-menu-mainmenu .mega-indicator::after { content: "⌄" !important; font-family: Arial,sans-serif !important; font-size: 17px; }
.sw4-enquiry { background: var(--sw4-grey); }
.sw4-enquiry__grid { align-items: center; display: grid; gap: clamp(36px,6vw,82px); grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); }
.sw4-enquiry__copy h2 { max-width: 520px; }
.sw4-enquiry__copy > p { font-size: 14px; font-weight: 700; margin-top: 19px; }
.sw4-enquiry__photo { max-width: 470px; overflow: hidden; }
.sw4-enquiry__photo img { aspect-ratio: 4 / 5; object-fit: cover; object-position: center 35%; width: 100%; }
body.page-id-4269 #form_emailus { scroll-margin-top: 130px; }
body.page-id-4269 #footer .contact-form .form-control { border-radius: 2px; }
body.page-id-4269 #footer .contact-form input[type="submit"] { background: #31133f; border: 2px solid #31133f; border-radius: 2px; color: #fff; font-size: 14px; font-weight: 700; min-height: 54px; padding: 14px 25px; }
body.page-id-4269 #footer .contact-form input[type="submit"]:hover { background: #f2b51d; border-color: #f2b51d; color: #171419; }

/* The shared menu positions closed flyouts off canvas at intermediate widths. */
body.page-id-4269 #mega-menu-wrap-mainmenu li.mega-menu-item-has-children:not(:hover):not(:focus-within):not(.mega-toggle-on) > ul.mega-sub-menu { display: none !important; }

@media (max-width: 900px) {
  .sw4-jk-profile { grid-template-columns: minmax(220px,.72fr) minmax(0,1.28fr); gap: 28px; }
  .sw4-practice__grid { grid-template-columns: minmax(0,1fr) minmax(0,.9fr); gap: 24px; }
  .sw4-jk-review-wall__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sw4-hero { grid-template-columns: minmax(0,1fr) minmax(0,.75fr); }
}

@media (max-width: 700px) {
  .sw4-page { font-size: 18px; line-height: 1.6; }
  .sw4-shell { width: calc(100% - 36px); }
  .sw4-nav__inner { flex-wrap: nowrap; gap: 22px; overflow-x: auto; padding-block: 8px; scrollbar-width: thin; width: 100%; }
  .sw4-nav a { flex: none; font-size: 11px; white-space: nowrap; }
  .sw4-section { padding-block: 72px; }
  .sw4-list-grid { grid-template-columns: 1fr; gap: 0; }
  .sw4-list li, .sw4-prose li, .sw4-section--row-2 .sw4-list li { font-size: 18px; line-height: 1.6; }
  .sw4-jk-profile { grid-template-columns: 1fr; }
  .sw4-practice__grid { grid-template-columns: 1fr; }
  .sw4-jk-profile__portrait { margin-inline: auto; max-width: 360px; width: 100%; }
  .sw4-jk-profile__portrait img { height: auto; }
  .sw4-jk-profile__copy p, .sw4-practice__copy p { font-size: 18px; line-height: 1.6; }
  .sw4-jk-review-wall__grid { grid-template-columns: 1fr; }
  .sw4-hero, .sw4-guarantee__grid, .sw4-enquiry__grid { grid-template-columns: 1fr; }
  .sw4-hero h1 { font-size: clamp(43px,11vw,58px); }
  .sw4-hero__photo { max-width: 560px; }
  .sw4-hero__photo img { aspect-ratio: 4 / 3; object-position: center; }
  .sw4-actions { align-items: stretch; flex-direction: column; gap: 12px; }
  .sw4-button { font-size: 16px; text-align: center; width: 100%; }
  .sw4-enquiry__photo { max-width: 560px; }
  .sw4-section--row-8 .sw4-prose { grid-template-columns: 1fr; }
  .sw4-section--row-8 .sw4-prose > p { grid-column: auto; }
  body.page-id-4269 #footer .contact-form input:not([type="submit"]),
  body.page-id-4269 #footer .contact-form textarea,
  body.page-id-4269 #footer .contact-form select { font-size: 16px; }
  body.page-id-4269 #footer .contact-form label { font-size: 14px; }
  body.page-id-4269 #footer .contact-form input[type="submit"] { font-size: 16px; }
}
