/* The list is the interface: editorial scale, thin rules and a moving image. */
body[data-page="services"] { background:var(--pink); }
.services-hero { min-height:100svh; padding:100px var(--edge) 16px; display:flex; flex-direction:column; justify-content:space-between; color:var(--white); overflow:hidden; }
.services-hero__top { display:grid; grid-template-columns:1fr 1fr; font-size:12px; font-weight:700; line-height:1.1; text-transform:uppercase; }
.services-hero__top p { margin:0; width:fit-content; }
.services-hero__top a { justify-self:end; align-self:start; }
.services-hero__title { margin:80px 0 60px; font-size:clamp(64px,11.9vw,190px); font-weight:800; letter-spacing:var(--display-tracking); line-height:.86; text-align:right; text-transform:uppercase; color:#68ffce; }
.services-hero__title .serif { font-weight:400; }
/* Keep small ink readable over both the bright field and the moving dark blobs. */
.services-hero__top > *, .services-hero__foot > * { color:var(--black); background:var(--pink); }
.services-hero__foot { display:flex; justify-content:space-between; gap:20px; font-size:12px; font-weight:700; text-transform:uppercase; }
.services-group { position:relative; padding:90px var(--edge) 110px; transition:background-color .65s var(--ease); }
.services-group--celebrations { background:var(--pink); color:var(--black); }
.services-group--expertise { background:var(--black); color:var(--white); }
.services-group__header { display:flex; align-items:end; justify-content:space-between; gap:24px; padding-bottom:30px; }
.services-group__header h2 { margin:0; max-width:70%; font-size:clamp(32px,4.1vw,68px); line-height:.92; letter-spacing:-.045em; font-weight:800; text-transform:uppercase; }
.services-group__header > span { font-size:12px; font-weight:700; white-space:nowrap; }
.services-list { list-style:none; padding:0; margin:0; }
.service-item { border-top:1px solid currentColor; scroll-margin-top:85px; }
.service-item:last-child { border-bottom:1px solid currentColor; }
.service-item__trigger { -webkit-appearance:none; appearance:none; width:100%; display:grid; grid-template-columns:60px minmax(0,1fr) 145px 22px; align-items:center; gap:15px; border:0; border-radius:0; color:inherit; background:transparent; text-align:left; padding:26px 0 23px; font:inherit; cursor:pointer; }
.service-item__num,.service-item__tag { font-size:12px; font-weight:700; line-height:1; text-transform:uppercase; }
.service-item__num { align-self:start; padding-top:8px; }
.service-item__title { position:relative; width:fit-content; font-size:clamp(30px,4.25vw,72px); font-weight:800; letter-spacing:-.05em; line-height:.95; text-transform:uppercase; transition:transform .7s var(--ease),color .4s var(--ease); }
.service-item__tag { text-align:right; }
.service-item__icon { width:15px; height:15px; position:relative; }
.service-item__icon::before,.service-item__icon::after { content:""; position:absolute; top:7px; width:15px; height:1px; background:currentColor; transition:transform .5s var(--ease); }
.service-item__icon::after { transform:rotate(90deg); }
.service-item.is-open .service-item__icon::after { transform:rotate(0deg); }
.service-item__trigger:hover .service-item__title,.service-item__trigger:focus-visible .service-item__title,.service-item.is-open .service-item__title { transform:translateX(12px); color:var(--white); }
.services-group--expertise .service-item__trigger:hover .service-item__title,.services-group--expertise .service-item__trigger:focus-visible .service-item__title,.services-group--expertise .service-item.is-open .service-item__title { color:var(--pink); }
.service-item__trigger:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.service-item__panel { display:grid; grid-template-rows:0fr; visibility:hidden; transition:grid-template-rows .7s var(--ease),visibility .7s; }
.service-item__inner { min-height:0; overflow:hidden; }
.service-item.is-open .service-item__panel { grid-template-rows:1fr; visibility:visible; }
.service-item__body { padding:10px 0 38px 75px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:6vw; }
.service-item__media { width:100%; max-width:520px; aspect-ratio:16/10; background:var(--black); }
.service-item__media[data-aspect="portrait"] { aspect-ratio: 4/5; max-width: 420px; }
.service-item__media[data-aspect="portrait"] img,
.service-item__media[data-aspect="portrait"] video { object-fit: cover; object-position: center 30%; }
.service-item__info { max-width:380px; padding-top:10px; display:flex; flex-direction:column; justify-content:space-between; gap:40px; align-items:start; }
.service-item__desc { margin:0; font-size:clamp(17px,1.7vw,24px); font-weight:600; letter-spacing:-.025em; line-height:1.18; }
.service-item__enquire { font-size:12px; font-weight:700; text-transform:uppercase; }
.services-group__note { margin:90px 0 0 auto; max-width:50%; font-size:12px; font-weight:700; line-height:1.2; text-transform:uppercase; }
.services-process { background:var(--white); color:var(--black); padding:100px var(--edge) 35px; }
.services-process__header { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:90px; }
.services-process__header h2 { text-align:right; text-transform:uppercase; font-size:clamp(60px,9vw,150px); line-height:.86; letter-spacing:var(--display-tracking); font-weight:800; margin:0 0 0 auto; order:2; }
.services-process__header > p { font-size:12px; font-weight:700; line-height:1.2; text-transform:uppercase; margin:0; }
.services-process__list { list-style:none; padding:0; margin:0; }
.process-row { display:grid; grid-template-columns:60px 1fr 28%; gap:15px; padding:28px 0; border-top:1px solid var(--black); align-items:center; }
.process-row > span { font-size:12px; font-weight:700; align-self:start; padding-top:6px; }
.process-row h3 { margin:0; font-size:clamp(42px,6vw,96px); letter-spacing:-.05em; line-height:.9; font-weight:800; text-transform:uppercase; }
.process-row > p { font-size:14px; font-weight:600; line-height:1.25; max-width:32ch; margin:0; }
.services-outro { display:flex; justify-content:space-between; gap:25px; margin-top:70px; padding-top:20px; border-top:1px solid var(--black); font-size:12px; font-weight:700; text-transform:uppercase; }
.service-preview { position:fixed; top:0; left:0; width:310px; z-index:45; pointer-events:none; opacity:0; visibility:hidden; transform:translate3d(-120vw,0,0); background:var(--black); color:var(--white); }
.service-preview__image { aspect-ratio:4/3; overflow:hidden; }
.service-preview__image img,.service-preview__image video { width:100%; height:100%; object-fit:cover; display:block; }
.service-preview__caption { display:flex; gap:16px; padding:10px; font-size:12px; font-weight:700; text-transform:uppercase; line-height:1.15; }
@media(max-width:800px) {
 .services-hero { padding-top:110px; min-height:90svh; }
 .services-hero__title { font-size:clamp(52px,12vw,95px); margin-block:90px; }
 .services-hero__foot { flex-wrap:wrap; font-size:12px; }
 .services-hero__foot > span:first-child { flex-basis:100%; }
 .services-hero__top { font-size:12px; gap:20px; }
 .services-group { padding:65px var(--edge) 75px; }
 .services-group__header { padding-bottom:30px; }
 .services-group__header h2 { max-width:75%; font-size:32px; }
 .services-group__header > span { font-size:12px; }
 .service-item__trigger { grid-template-columns:32px minmax(0,1fr) 15px; gap:8px; padding:23px 0; }
 .service-item__title { font-size:clamp(25px,6.5vw,48px); letter-spacing:-.045em; line-height:.98; }
 .service-item__tag { display:none; }
 .service-item__num { font-size:12px; padding-top:3px; }
 .service-item__trigger:hover .service-item__title,.service-item__trigger:focus-visible .service-item__title,.service-item.is-open .service-item__title { transform:translateX(4px); }
 .service-item__body { padding:0 0 30px 40px; grid-template-columns:1fr; gap:20px; }
 .service-item__info { gap:24px; padding:0; }
 .service-item__desc { font-size:17px; }
 .service-item__enquire { font-size:12px; }
 .services-group__note { max-width:75%; margin-top:65px; }
 .services-process { padding-top:70px; }
 .services-process__header { flex-direction:column; align-items:stretch; margin-bottom:60px; gap:30px; }
 .services-process__header h2 { font-size:15vw; }
 .process-row { grid-template-columns:32px 1fr; gap:18px 8px; }
 .process-row > p { grid-column:2; max-width:32ch; }
 .process-row h3 { font-size:12vw; }
 .process-row > span { font-size:12px; }
 .services-outro { font-size:12px; }
 .service-preview { display:none; }
}
@media(prefers-reduced-motion:reduce) { .service-item__panel,.service-item__title,.service-item__icon::after,.services-group { transition:none; } .service-preview { display:none; } }

/* Mobile pass: 44px hit boxes on the small bracket links. The padding is cancelled by an equal
   negative margin and the highlight is clipped to the text, so the type does not move or grow. */
@media (max-width: 767px) {
  .services-hero__top a { padding-block: 16px; margin-block: -16px; background-clip: content-box; }
  .services-hero__foot a, .services-outro a { padding-block: 14px; margin-block: -14px; background-clip: content-box; }
  .services-hero { padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 767px) {
  .service-item__enquire { display: inline-flex; align-items: center; min-height: 44px; }
}
