/* The finishing layer: a quieter rhythm, tactile details, restrained motion. */
:root{--ease-out:cubic-bezier(.22,1,.36,1)}
body{-webkit-font-smoothing:antialiased}
::selection{background:#f9bad5;color:#21191e}
h1,h2,h3{text-wrap:balance}
p{ text-wrap:pretty }
.section{padding-block:clamp(48px,5.2vw,72px)}
.site-header{height:102px}
.site-header nav a{position:relative;padding:8px 0}
.site-header nav a:after{content:'';position:absolute;bottom:2px;left:0;right:0;height:2px;background:var(--berry);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease-out)}
.site-header nav a:hover:after,.site-header nav a:focus-visible:after{transform:scaleX(1)}
.button{background:linear-gradient(110deg,#f773ad,#f567a5);box-shadow:0 4px 14px #ae16580a,inset 0 1px 0 #ffffff35;transition:background .2s,box-shadow .25s,transform .25s var(--ease-out)}
.button>span{transition:transform .25s var(--ease-out),background .25s}
.button:active{transform:translateY(0);box-shadow:0 1px 6px #ae16581a}
.hero{box-shadow:0 12px 32px #21191e08}
.hero-description{line-height:1.65}
.hero .benefits{margin:21px 0}
.hero .micro{font-size:11px;color:#d9c5cf}
.call-offer{padding-top:16px;margin-bottom:16px}
.call-offer span{font-size:12px}
.hero-title .eyebrow{letter-spacing:.13em}
.hero h1 em{position:relative;display:inline-block}
.proof-carousel{padding-block:27px}
.proof-label .stars{letter-spacing:.16em}
.proof-slide blockquote{line-height:1.55}
.carousel-arrow{border-color:#d9b4c5;background:#fff8f6b3;color:var(--berry);transition:background .2s,color .2s,border-color .2s,transform .2s}
.carousel-arrow:disabled{background:transparent;opacity:.32}
.carousel-toolbar{gap:22px}
.carousel-progress{height:2px;flex:1;background:#dab9c9;overflow:hidden;border-radius:2px}
.carousel-progress i{display:block;width:var(--progress,0%);height:100%;background:var(--berry);border-radius:inherit;transition:width .4s var(--ease-out)}
.proof-carousel .carousel-progress{width:100%;flex:none;order:3}
.proof-carousel .carousel-toolbar{gap:9px}
.proof-carousel .carousel-arrows{gap:8px}
.proof-carousel .carousel-arrow{width:44px;height:44px}

/* Headings and introductions share a baseline, giving the page a clear pace. */
@media(min-width:901px){
  #included>.section-heading,.results-section .section-heading,.team-section>.section-heading,.reviews-section .section-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:0 52px;max-width:none;align-items:end;margin-bottom:36px}
  #included>.section-heading>.eyebrow,.results-section .section-heading>.eyebrow,.team-section>.section-heading>.eyebrow,.reviews-section .section-heading>.eyebrow{grid-column:1 / -1;margin-bottom:17px}
  #included>.section-heading>p:last-child,.results-section .section-heading>p:last-child,.team-section>.section-heading>p:last-child,.reviews-section .section-heading>p:last-child{margin:0 0 4px;max-width:390px;line-height:1.7}
  .hero{padding-top:40px;padding-bottom:40px;min-height:620px}
  .hero-offer{padding-top:22px;max-width:480px}
  .hero-description{max-width:435px}
  .hero h1{font-size:clamp(57px,5.3vw,76px)}
}
.work-example{padding:20px;background:#f5e8ee;border:1px solid #e8d6de}
.work-example>p{max-width:400px;line-height:1.65}
.image-zoom>img{transition:transform .7s var(--ease-out)}
.image-zoom>span{backdrop-filter:blur(8px);transition:background .25s}
.image-zoom>span b{transition:transform .25s var(--ease-out)}
.deliverables li{gap:16px;padding-block:19px}
.deliverables li>span{display:grid;place-items:center;width:30px;height:30px;padding:0;margin-top:1px;border:1px solid #e3bbcd;border-radius:50%;font-size:10px}
.deliverables h3{font-size:28px}
.deliverables p{margin-top:8px;max-width:420px}
.section-footer{align-items:center}
.results-section{background:linear-gradient(150deg,#f7edf1,#f2e1e9)}
.case{border:1px solid #e7d5de;background:#fffaf8;box-shadow:0 7px 24px #582a4004}
.case-top{min-height:64px;margin-bottom:20px}
.case-result{min-height:56px;line-height:1.6}
.case-review{padding-top:20px;margin-top:16px}
.case-review blockquote{margin-bottom:20px}
.metric{letter-spacing:-.035em}
.metric span{letter-spacing:0}
.results-context{margin-top:20px;border:0}
.results-context summary{display:inline-flex;align-items:center;min-height:44px;padding:8px 29px 8px 0;color:var(--muted);font-size:12px;font-weight:500}
.results-context summary:after{top:5px;right:0;font-size:23px}
.results-context .disclosure{padding:0 0 4px;margin-top:5px;line-height:1.75}
.fit-list{background:#f8edf2;border:1px solid var(--line)}
.business-tags span{background:#fffcfa;border-color:#dfc7d2}
.person img{border-radius:24px 24px 10px 10px;border:1px solid #e8d6de;box-shadow:0 8px 24px #48243506;transition:box-shadow .4s}
.person>span{line-height:1.65}
.team-location{text-align:left;padding-top:20px;border-top:1px solid var(--line)}
.person .person-role{color:var(--berry);font-weight:600;min-height:45px}
.person .person-bio{font-size:14px;line-height:1.7;margin-top:12px;color:var(--muted);min-height:72px;max-width:350px}
.person .person-credentials{border-top:1px solid var(--line);padding-top:14px;margin-top:17px;line-height:1.8}
.team-community{margin-top:34px;padding-inline:22px;background:#f8edf2;border:1px solid var(--line);border-radius:16px}
.team-community summary{padding:19px 34px 19px 0;font-size:15px;line-height:1.5}
.team-community summary:after{top:17px}
.team-community summary small{display:block;color:var(--muted);font-size:12px;font-weight:400;margin-top:5px}
.team-community[open] summary{border-bottom:1px solid var(--line)}
.team-community-content{padding:23px 0 20px}
.community-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:24px}
.community-grid h3{font-size:25px}
.community-grid p{font-size:12px;line-height:1.9;margin-top:11px;color:var(--muted)}
.community-grid p strong{font-weight:600;color:var(--ink)}
.community-note{font-size:11px;color:var(--muted);margin-top:20px}
.team-location{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* The reviews become a distinct, intimate moment before the booking section. */
.reviews-section{background:#281d24;color:#fff8f6}
.reviews-section .eyebrow{color:#f4b1cf}
.reviews-section h2 em{color:#ffa1c9}
.reviews-section .section-heading>p:last-child{color:#d7c1cc}
.review-card{color:var(--ink);background:#fffaf8;border-color:#fffaf8;min-height:330px;box-shadow:none}
.review-card blockquote{font-size:22px;line-height:1.42;margin:17px 0 22px}
.review-read{transition:color .2s}
.review-read>span{transition:transform .25s var(--ease-out)}
.review-avatar{background:#f8e4ee}
.reviews-section .carousel-status,.reviews-section .review-note{color:#d4bcc9}
.reviews-section .carousel-arrow{border-color:#735361;background:#34242d;color:#ffd3e7}
.reviews-section .carousel-arrow:hover:not(:disabled){background:#f567a5;border-color:#f567a5;color:var(--ink)}
.reviews-section .carousel-progress{background:#60424f}
.reviews-section .carousel-progress i{background:#f18ab7}
.reviews-section .review-note{margin-top:14px;font-size:11px}
.booking-section{background:linear-gradient(135deg,#fbe9f1,#f6dfe9);padding-block:64px}
.booking-copy h2{max-width:580px}
.booking-copy h2 br{display:block}
.booking-copy>p:not(.eyebrow){max-width:460px;line-height:1.75}
.call-agenda{margin-top:22px}
.call-agenda li{gap:16px;padding:17px 0}
.call-agenda li>span{font-size:11px}
.call-agenda h3{font-size:27px}
.call-agenda p{max-width:390px}
.booking-panel{box-shadow:0 16px 48px #7b3b5714;border:1px solid #080808}
.booking-badge{border-color:#805766;background:#2b1720}
.faq summary{transition:color .2s}
.faq details[open]>summary{color:var(--berry)}
.faq details[open]>p{animation:detail-in .3s var(--ease-out)}
.faq .centred{margin-top:28px}
.dialog-close{width:44px;height:44px;right:10px;top:10px;font-size:28px}
dialog[open]{animation:dialog-in .25s var(--ease-out)}
dialog::backdrop{background:#160e15ce;backdrop-filter:blur(5px)}
.mobile-booking{backdrop-filter:blur(12px)}
.mobile-booking .button{box-shadow:0 4px 18px #ae16580d}

@media(hover:hover) and (pointer:fine){
  .button:hover{background:linear-gradient(110deg,#fb8cbb,#f773ad);transform:translateY(-2px);box-shadow:0 8px 22px #ae16581c,inset 0 1px 0 #ffffff55}
  .button:hover>span{transform:translate(2px,-1px)}
  .image-zoom:hover>img{transform:scale(1.018)}
  .image-zoom:hover>span{background:#fffaf8}
  .image-zoom:hover>span b,.review-read:hover>span{transform:translate(2px,-2px)}
  .person:hover img{box-shadow:0 12px 28px #48243512}
  .carousel-arrow:hover:not(:disabled){transform:translateY(-1px)}
  .faq summary:hover{color:var(--berry)}
}
@media(min-width:601px) and (max-width:900px){
  .hero .button{min-width:0;width:100%;padding-inline:16px;gap:10px;font-size:13px}
  .hero-title{padding-top:34px}
  .hero-image{min-height:620px}
  .hero h1{font-size:54px}
  .case-top{min-height:112px}
}
@media(max-width:800px){
  .section-footer{align-items:flex-start}
  .proof-carousel .carousel-toolbar{align-self:center}
  .booking-section{padding-block:52px}
}
@media(max-width:600px){
  .site-header{height:88px}
  .hero-title{padding-block:25px 24px}
  .hero-offer{padding-top:21px;padding-bottom:25px}
  .hero .benefits{margin:21px 0;gap:11px}
  .hero .call-offer{padding-top:16px;margin-bottom:17px}
  .hero .call-offer span{font-size:11px}
  .hero .micro{font-size:11px}
  .proof-carousel{gap:15px;padding-block:24px}
  .proof-carousel .carousel-toolbar{width:100%;gap:16px}
  .proof-carousel .carousel-progress{width:auto;flex:1;order:initial}
  .proof-carousel .carousel-arrows{gap:9px}
  .section-heading>p:last-child:not(.eyebrow){margin-top:16px;line-height:1.7}
  .section{padding-block:44px}
  .work-example{padding:16px}
  .deliverables li{gap:13px;padding-block:17px}
  .deliverables li>span{width:27px;height:27px;font-size:9px}
  .deliverables h3{font-size:26px}
  .deliverables p{font-size:14px;line-height:1.65}
  .case{padding:21px}
  .case-top{min-height:62px}
  .case-result{min-height:0;margin-top:19px}
  .case-review{margin-top:20px}
  .fit-list{padding:23px 21px}
  .person img{border-radius:18px 18px 8px 8px}
  .person{column-gap:17px;grid-template-rows:min-content 1fr auto auto}
  .person img{grid-row:1 / 3}
  .person .person-role{min-height:0;margin-top:7px;align-self:start}
  .person .person-bio{grid-column:1 / -1;min-height:0;max-width:none;margin-top:17px}
  .person .person-credentials{grid-column:1 / -1;margin-top:12px;padding-top:12px}
  .team-grid{gap:29px}
  .team-community{margin-top:28px;padding-inline:18px}
  .team-community summary{font-size:14px;padding-right:28px}
  .team-community summary small{font-size:11px;line-height:1.7}
  .community-grid{grid-template-columns:1fr;gap:20px}
  .community-grid h3{font-size:25px}
  .community-grid p{margin-top:7px;font-size:12px}
  .community-note{font-size:10px;line-height:1.7}
  .team-location{gap:6px}
  .team-location{font-size:12px;line-height:1.7}
  .review-card{min-height:326px;padding:23px}
  .review-card blockquote{font-size:22px}
  .review-track{scroll-snap-stop:always}
  .reviews-section>.wrap{display:flex;flex-direction:column}
  .reviews-section .section-heading{order:1;margin-bottom:0}
  .reviews-section .carousel-toolbar{order:2;margin:20px 0}
  .reviews-section .review-track{order:3}
  .reviews-section .review-note{order:4}
  .carousel-toolbar{gap:18px;margin-top:19px}
  .booking-section{padding-block:44px}
  .booking-copy h2{font-size:42px}
  .call-agenda h3{font-size:25px}
  .booking-panel iframe{height:640px}
  #review-dialog{padding-top:50px}
}
@keyframes detail-in{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes dialog-in{from{opacity:.6;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .button:hover,.button:hover>span,.image-zoom:hover>img,.image-zoom:hover>span b,.review-read:hover>span,.carousel-arrow:hover:not(:disabled){transform:none}
}
