/* Service landing pages share the existing brand, fonts, photography and page furniture. */
.service-hero{background:var(--cream);padding:3.5rem 0 0}.service-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;padding-bottom:3rem}.service-hero-copy{padding:1rem 0}.service-category{font-size:calc(.95rem + 2px);font-weight:750;color:var(--aqua);margin:2rem 0 .75rem}.service-hero h1{font-size:calc(clamp(2.8rem,5.3vw,4.7rem) + 2px);line-height:1.06;letter-spacing:-.05em;margin:0 0 1.4rem;max-width:11ch}.service-intro{font-size:calc(1.1rem + 2px);line-height:1.8;color:var(--muted);max-width:32rem;margin-bottom:1.8rem}.service-primary{background:var(--deep);border-color:var(--deep);color:white;gap:1.5rem}.service-primary:hover{background:#0b7f78;border-color:#0b7f78}.service-primary>span{font-size:calc(1.4rem + 2px)}.service-hero-photo{min-width:0}.service-hero-photo img{display:block;width:100%;aspect-ratio:17/12;object-fit:cover;border-radius:0}.service-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}.service-overview h2,.service-faq-section h2{font-size:calc(clamp(2rem,3.1vw,3rem) + 2px);line-height:1.15;letter-spacing:-.035em;margin:0}.service-overview-grid>p{margin:1.6rem 0 0;line-height:1.9;color:var(--muted)}.service-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin-top:3.5rem}.service-points article{--point-accent:var(--aqua);padding:0}.service-points article:nth-child(2){--point-accent:var(--coral)}.service-points article:nth-child(3){--point-accent:#F3C302}.service-point-swash{display:block;width:6.5rem;height:1.2rem;margin:.65rem 0 1rem;background:var(--point-accent);border-radius:.2rem}.service-points h3{font-size:calc(1.2rem + 2px);letter-spacing:-.02em;margin:0;line-height:1.3}.service-points p{font-size:calc(.95rem + 2px);color:var(--muted);line-height:1.8;margin:0}.service-overview{background:var(--sand)}.service-faq-section{background:#DDF5F2}.service-faq-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:4rem}.service-faq{border-top:1px solid #b8ccc5}.service-faq details{border-bottom:1px solid #b8ccc5}.service-faq summary{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;list-style:none;cursor:pointer;font-size:calc(.97rem + 2px);font-weight:700;padding:1.4rem 0}.service-faq summary::-webkit-details-marker{display:none}.service-faq summary>span{font-size:calc(1.5rem + 2px);flex-shrink:0;font-weight:400}.service-faq details[open] summary>span{transform:rotate(45deg)}.service-faq details p{font-size:calc(.95rem + 2px);color:#425e62;line-height:1.8;margin:0 1.7rem 1.5rem 0}.service-inquiry{background:var(--deep);color:#fff;scroll-margin-top:1rem;margin-bottom:0}.service-inquiry-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:4.5rem;align-items:start}.service-inquiry-aside{position:sticky;top:2rem}.service-inquiry-aside>.eyebrow{color:#b0e8db}.service-inquiry-aside h2{font-size:calc(clamp(2.3rem,3.5vw,3.3rem) + 2px);line-height:1.12;letter-spacing:-.04em;margin:1rem 0 1.5rem}.service-inquiry-aside>p:not(.eyebrow){color:#d2e8e1;line-height:1.9;max-width:26rem}.service-inquiry-direct{display:grid;gap:1rem;margin-top:2.5rem;font-size:calc(.9rem + 2px)}.service-inquiry-direct>a{color:#c2f0df;overflow-wrap:anywhere;text-decoration:none}.service-inquiry-direct>a:hover{text-decoration:underline}.dive-inquiry{background:var(--white);color:var(--ink);padding:2.1rem;border-radius:1.25rem;min-width:0}.inquiry-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.1rem}.inquiry-field{margin-bottom:1.3rem;min-width:0}.inquiry-field>label,.inquiry-reply legend{display:block;font-size:calc(.82rem + 2px);font-weight:750;margin-bottom:.55rem;line-height:1.6}.inquiry-field small{font-size:calc(.7rem + 2px);color:var(--muted);font-weight:400}.dive-inquiry input:not([type=checkbox]):not([type=radio]),.dive-inquiry select,.dive-inquiry textarea{display:block;width:100%;min-width:0;border:1px solid #b4cdc4;border-radius:.3rem;background:#fbfdfb;color:var(--deep);padding:.75rem .8rem;font-family:inherit;font-size:calc(.92rem + 2px);line-height:1.6;min-height:3rem}.dive-inquiry textarea{resize:vertical}.dive-inquiry input::placeholder,.dive-inquiry textarea::placeholder{color:#647e78;opacity:1}.dive-inquiry input:disabled{background:#eaf0ec!important;color:#6f827a}.inquiry-reply{padding:0;border:0;margin:0 0 1.3rem}.inquiry-reply>div{display:flex;gap:.8rem}.inquiry-reply>div>label{display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;border:1px solid #b4cdc4;border-radius:.3rem;flex:1;font-size:calc(.87rem + 2px);cursor:pointer}.inquiry-reply label:has(input:checked){background:#e2f6ed;border-color:#0b7f78}.dive-inquiry input[type=checkbox],.dive-inquiry input[type=radio]{accent-color:#0b7f78;width:1rem;height:1rem;flex-shrink:0}.inquiry-checkbox{display:flex!important;align-items:center;gap:.5rem;margin:.6rem 0 0!important;font-weight:400!important;font-size:calc(.75rem + 2px)!important}.inquiry-hint{font-size:calc(.73rem + 2px);color:var(--muted);margin:.4rem 0 0}.inquiry-privacy{font-size:calc(.73rem + 2px);line-height:1.75;color:var(--muted);margin:0 0 1.2rem}.inquiry-privacy a{color:#0b675f;text-decoration:underline}.inquiry-submit{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;border-color:var(--aqua);background:var(--aqua);color:#052f3b;font-size:calc(.94rem + 2px);cursor:pointer}.inquiry-submit:hover{background:#0b7f78;border-color:#0b7f78;color:#fff}.inquiry-send-help,.inquiry-booking{color:var(--muted);font-size:calc(.73rem + 2px);text-align:center;line-height:1.75;margin:.8rem 0 0}.inquiry-booking{margin-top:.4rem}.inquiry-error{background:#fff0e9;border-left:3px solid #a93721;color:#862b1b;padding:.8rem;font-size:calc(.85rem + 2px)}.inquiry-invalid{border:2px solid #a93721!important}.inquiry-handoff{border-top:1px solid #bad6ca;padding-top:1.3rem;margin-top:1.4rem}.inquiry-handoff h3{font-size:calc(1.1rem + 2px);margin:0}.inquiry-handoff>p{font-size:calc(.85rem + 2px);line-height:1.75}.inquiry-handoff-actions{display:flex;gap:1rem;align-items:center;justify-content:space-between;margin:1rem 0}.inquiry-handoff-actions a,.inquiry-handoff-actions button{font-size:calc(.8rem + 2px);color:#0b675f;text-decoration:underline}.inquiry-handoff-actions button{font:inherit;font-size:calc(.8rem + 2px);border:0;padding:0;background:none;cursor:pointer}.inquiry-handoff textarea{font-size:calc(.78rem + 2px);min-height:12rem}.service-inquiry [hidden]{display:none!important}.dive-inquiry :is(input,textarea,select,button,a):focus-visible,.service-faq summary:focus-visible{outline:3px solid #0b7f78;outline-offset:3px}
@media(max-width:62rem){.service-hero-grid{gap:2rem}.service-inquiry-grid{gap:2rem;grid-template-columns:.8fr 1.2fr}.dive-inquiry{padding:1.5rem}.service-overview-grid{gap:3rem}.service-faq-grid{gap:2.5rem}}
@media(max-width:48rem){.service-hero{padding-top:2rem}.service-hero-grid{grid-template-columns:1fr;gap:1.3rem;padding-bottom:2rem}.service-category{margin:1.7rem 0 .8rem}.service-hero h1{font-size:calc(clamp(2.8rem,12vw,4.5rem) + 2px);max-width:14ch}.service-intro{font-size:calc(1rem + 2px)}.service-hero-photo{max-width:35rem;width:100%;margin:auto}.service-overview-grid,.service-faq-grid,.service-inquiry-grid{grid-template-columns:1fr;gap:1.7rem}.service-overview-grid>p{margin:0}.service-points{grid-template-columns:1fr;gap:1.6rem;margin-top:2.3rem}.service-points article{display:block;padding:0}.service-points h3{margin:0}.service-point-swash{margin-bottom:.8rem}.service-faq-section h2{font-size:calc(2rem + 2px)}.service-faq summary{font-size:calc(.9rem + 2px)}.service-inquiry-aside{position:static}.service-inquiry-direct{margin-top:1.4rem;gap:.5rem}.service-inquiry-aside h2{font-size:calc(2.5rem + 2px)}.dive-inquiry{padding:1.4rem 1rem}.inquiry-row{grid-template-columns:1fr;gap:0}.dive-inquiry input:not([type=checkbox]):not([type=radio]),.dive-inquiry textarea,.dive-inquiry select{font-size:calc(1rem + 2px)}.inquiry-handoff-actions{flex-wrap:wrap}.service-inquiry{padding-bottom:3rem}}
@media(prefers-reduced-motion:reduce){.service-faq summary>span{transition:none}}
.inquiry-controls{border:0;padding:0;margin:0;min-width:0}

/* Painted transitions use the supplied edge and swash assets. */
@supports (mask-image:linear-gradient(#000,#000)) or (-webkit-mask-image:linear-gradient(#000,#000)){
  .service-overview,.service-highlights,.service-faq-section,.service-inquiry{position:relative;isolation:isolate}
  .service-overview::before,.service-highlights::before,.service-faq-section::before,.service-inquiry::before{content:"";position:absolute;inset-inline:0;bottom:calc(100% - 1px);height:clamp(1.2rem,3vw,2.5rem);background:inherit;pointer-events:none;-webkit-mask:url("../brush/edge.svg") center/100% 100% no-repeat;mask:url("../brush/edge.svg") center/100% 100% no-repeat}
  .service-point-swash{border-radius:0;-webkit-mask:url("../brush/swash.svg") center/100% 100% no-repeat;mask:url("../brush/swash.svg") center/100% 100% no-repeat}
}
/* Keep the Contact heading within narrow mobile layouts. */
body[data-page="contact"] .content h2 .marker-label{display:inline-block;max-width:100%;overflow-wrap:anywhere}

/* Try Dive feature photos use the supplied circular brush-ring mask. */
.service-point-photo{width:min(100%,22rem);margin:0 auto 1.3rem}.service-point-photo img{display:block;width:100%;height:auto;aspect-ratio:1000/935;object-fit:cover;border-radius:50%}.service-point-photo--1 img{object-position:50% 70%}.service-point-photo--2 img{object-position:50% 75%}.service-point-photo--3 img{object-position:50% 60%}
@supports (mask-image:linear-gradient(#000,#000)) or (-webkit-mask-image:linear-gradient(#000,#000)){.service-point-photo img{border-radius:0;-webkit-mask:radial-gradient(ellipse 41% 44% at 50% 50%,#000 98%,transparent 100%),url("../brush/photo-mask-circle.svg") center/100% 100% no-repeat;mask:radial-gradient(ellipse 41% 44% at 50% 50%,#000 98%,transparent 100%),url("../brush/photo-mask-circle.svg") center/100% 100% no-repeat;-webkit-mask-composite:source-out;mask-composite:subtract}}

/* Heading photos use the rectangular painted frame at its native proportions.
   The supplied SVG is opaque at the edges, so subtract it to reveal the photo. */
@supports (mask-image:linear-gradient(#000,#000)) or (-webkit-mask-image:linear-gradient(#000,#000)){
.service-hero-photo img{-webkit-mask:linear-gradient(#000,#000),url("../brush/photo-mask.svg") center/100% 100% no-repeat;mask:linear-gradient(#000,#000),url("../brush/photo-mask.svg") center/100% 100% no-repeat;-webkit-mask-composite:source-out;mask-composite:subtract}
}

/* The final feature swash uses the existing highlighter-label.svg yellow (#F3C302). */

/* Type sizes increased by 2px; root sizing and layout spacing are unchanged. */

/* Highlights form a separate painted section with centered copy. */
.service-highlights{background:var(--cream)}
.service-highlights .service-points{margin-top:0}
.service-points article{text-align:center}
.service-points .service-point-swash{margin-inline:auto}
@supports (mask-image:linear-gradient(#000,#000)) or (-webkit-mask-image:linear-gradient(#000,#000)){
body:is([data-page="service"],[data-page="contact"]) .site-footer::before{background:var(--aqua);bottom:calc(100% - 1px);height:clamp(1.2rem,3vw,2.5rem);-webkit-mask:url("../brush/edge.svg") center/100% 100% no-repeat;mask:url("../brush/edge.svg") center/100% 100% no-repeat;pointer-events:none}
}

/* Contact-page transitions follow the reordered inquiry and information sections. */
body[data-page="contact"] .contact-details{background:var(--cream)}
@supports (mask-image:linear-gradient(#000,#000)) or (-webkit-mask-image:linear-gradient(#000,#000)){
body[data-page="contact"] .contact-details{position:relative;isolation:isolate}
body[data-page="contact"] .contact-details::before{content:"";position:absolute;inset-inline:0;bottom:calc(100% - 1px);height:clamp(1.2rem,3vw,2.5rem);background:var(--cream);pointer-events:none;-webkit-mask:url("../brush/edge.svg") center/100% 100% no-repeat;mask:url("../brush/edge.svg") center/100% 100% no-repeat}
body[data-page="contact"] .site-footer::before{background:var(--deep)}
}

/* Shared gallery preview between the service inquiry and footer. */
.service-gallery{background:var(--cream)}
.service-gallery-link{margin-top:2rem}
.service-gallery .service-gallery-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem;overflow:visible;border-radius:0;background:transparent}
.service-gallery-grid > .gallery-photo{aspect-ratio:4/3;border-radius:var(--radius)}
.service-gallery-grid .gallery-photo img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.service-gallery-grid .gallery-photo__caption{display:none}
@media(max-width:62rem){.service-gallery .service-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:36rem){.service-gallery .service-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@supports (mask-image:linear-gradient(#000,#000)) or (-webkit-mask-image:linear-gradient(#000,#000)){
.service-gallery{position:relative;isolation:isolate}
.service-gallery::before{content:"";position:absolute;inset-inline:0;bottom:calc(100% - 1px);height:clamp(1.2rem,3vw,2.5rem);background:var(--cream);pointer-events:none;-webkit-mask:url("../brush/edge.svg") center/100% 100% no-repeat;mask:url("../brush/edge.svg") center/100% 100% no-repeat}
body[data-page="service"] .site-footer::before{background:var(--deep)}
}
