/* A quiet wordmark and neutral navigation keep plum for the page's key accents. */
@font-face{font-family:'Pirjo Brand';src:url('dm-sans.woff2') format('woff2');font-style:normal;font-weight:100 1000;font-display:swap}
:root{--nav-ink:#303832;--nav-text:#474c47;--brand-ink:#59434e;--brand-muted:#74666c}
.header .brand{color:var(--brand-ink);gap:0;padding:0}
.header .brand-name,.footer .brand-name{font:700 38px/.95 'Cormorant Infant',Georgia,serif;letter-spacing:-.04em}
.header .brand-sub,.footer .brand-sub{margin-top:5px;font:400 11px/1.2 var(--sans);letter-spacing:.07em;text-transform:uppercase}
.header .brand-sub{color:var(--brand-muted)}
.header .nav{gap:30px}
.header .nav a{font-size:15px;font-weight:400;line-height:1.4;letter-spacing:0;color:var(--nav-text);padding-block:14px}
.header .nav a:hover,.header .nav a[aria-current="page"]{color:var(--nav-ink);text-decoration:underline;text-decoration-color:var(--sage);text-decoration-thickness:1px;text-underline-offset:7px}
.header .menu-toggle{color:var(--nav-ink)}
.header a:focus-visible,.header button:focus-visible{outline-color:var(--sage)}
.footer .brand-sub{color:#cbc9c3}
@media(max-width:760px){.header .brand-name{font-size:36px}.header .brand-sub{margin-top:4px}.header .nav a{font-size:16px}}

/* Desktop benefits bridge both sections; phones retain a separate paper strip. */
.payment-benefits{position:relative;z-index:2;background:var(--paper);padding:0 0 32px}
.payment-benefits__inner{display:flex;align-items:center;justify-content:center;gap:28px;min-height:44px}
.payment-benefits p{font-size:13px;line-height:1.5;color:var(--text)}
.payment-benefits__logos{display:flex;align-items:center;gap:26px}
.payment-benefits__logos img{width:auto;height:24px;filter:grayscale(1);opacity:.72}
.payment-benefits__logos img[alt="Smartum"]{height:19px}
.payment-benefits--inline{display:none}
@media(min-width:761px){
  .hero .lead{max-width:35rem;text-wrap:balance}
  .services{padding-top:calc(var(--section-space) + 32px)}
  .hero-composition{position:relative;--benefit-gutter:max(56px,calc((100vw - var(--max))/2))}
  .payment-benefits--inline{display:none}
  .payment-benefits--mobile{display:block;position:absolute;inset:auto auto 0 0;transform:translateY(50%);width:max-content;max-width:100%;padding:20px 60px 20px var(--benefit-gutter);background:#ececec;border:0;clip-path:polygon(0 0,calc(100% - 28px) 0,100% 100%,0 100%);z-index:4}
  .payment-benefits__inner{width:auto;margin:0;justify-content:flex-start;flex-wrap:wrap;gap:10px 20px;min-height:24px}
  .payment-benefits p{font-size:1rem;line-height:1.5;color:#6b6469}
  .payment-benefits__logos{gap:18px}
  .payment-benefits__logos img{height:22px}
  .payment-benefits__logos img[alt="Smartum"]{height:17px}
}
@media(min-width:761px) and (max-width:1150px){.hero-composition{--benefit-gutter:36px}}
@media(max-width:760px){
  /* Preserve the space previously occupied by the location line. */
  .hero-copy{padding-bottom:39.5px}
  .payment-benefits--mobile{margin-top:-80px;padding:12px 0 var(--section-space);background:transparent}
  .payment-benefits__inner{gap:18px;flex-wrap:wrap;min-height:48px}
  .payment-benefits__logos{gap:24px}
}
@media(max-width:480px){.hero-copy{padding-bottom:38px}.payment-benefits__inner{flex-direction:column;gap:12px}.payment-benefits p{font-size:12px}}

/* Light, image-led cards on sage, following the Ressbarber card structure. */
.services .service-preview{row-gap:24px;column-gap:24px;align-items:stretch}
.services .service-preview-heading{margin-bottom:16px}
.services .service-preview-card,.services .service-preview-card:nth-child(2){display:flex;flex-direction:column;align-self:stretch;background:var(--paper);border:0;border-radius:0;overflow:hidden;box-shadow:none}
.services .service-preview-content{flex:1;padding:24px}
.services .service-preview-card h3{font-size:1.25rem;line-height:1.3;margin-bottom:12px;color:var(--nav-ink)}
.services .service-preview-card p{font-size:1rem;line-height:1.65;color:var(--text)}
.service-nowrap{white-space:nowrap}
@media(min-width:761px) and (max-width:1000px){.services .service-preview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.services .service-preview{row-gap:24px}.services .service-preview-content{padding:24px}}

/* Separate sections share the same content edge and existing paper surface. */
.care-intro,.find-pirjo{background:var(--paper)}
.care-intro{padding-top:clamp(72px,8vw,112px)}
.care-intro__inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:start}
.care-intro__inner>*{min-width:0}
.care-intro__content{grid-column:1/7;max-width:31rem}
.find-pirjo{padding-block:clamp(72px,8vw,112px)}
:where(.care-intro,.find-pirjo) h2{font-family:var(--editorial);font-size:var(--section-title);font-weight:500;line-height:1.14;letter-spacing:-.012em}
.care-intro h2{margin:0 0 24px}
.care-intro__copy p{font-size:1.0625rem;line-height:1.75;text-wrap:pretty}
.care-intro__copy p+p{margin-top:16px}
.care-intro__portrait{grid-column:8/13;align-self:start;width:100%;aspect-ratio:4/5;background:#dedede}
.find-pirjo__inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:28px;align-items:start}
.find-pirjo__inner>*{min-width:0;max-width:31rem}
.find-pirjo h2{grid-column:1/6;grid-row:1/3}
.find-pirjo__address{grid-column:6/12;grid-row:1;padding-top:0}
.find-pirjo__hours{grid-column:6/12;grid-row:2}
.find-pirjo h2{margin:0}
.find-pirjo h3{font-size:1rem;line-height:1.5;margin-bottom:10px}
.find-pirjo address,.find-pirjo p{font-size:1rem;line-height:1.7;font-style:normal;color:var(--text)}
.find-pirjo__hours{max-width:26rem}
.find-pirjo__hours p+p{margin-top:12px}
.find-pirjo .text-link{margin-top:14px;border:0}
@media(max-width:760px){
  .care-intro{padding-top:56px}
  .care-intro__inner{grid-template-columns:repeat(6,minmax(0,1fr));column-gap:16px;row-gap:32px}
  .care-intro__content{grid-column:1/-1;max-width:34rem}
  .care-intro__portrait{grid-column:2/-1;grid-row:2;margin:0;max-width:440px;justify-self:end;aspect-ratio:5/6}
  .find-pirjo{padding-block:64px}
  .care-intro__copy p{font-size:1rem}
  .find-pirjo__inner{grid-template-columns:repeat(6,minmax(0,1fr));gap:24px 16px}
  .find-pirjo h2{grid-column:1/-1;grid-row:1}
  .find-pirjo__address{grid-column:2/-1;grid-row:2;padding:0}
  .find-pirjo__hours{grid-column:2/-1;grid-row:3}
  .find-pirjo h2 br{display:none}
}

/* Booking leads; contact details share one supporting column. */
.visit{background-color:#1f1b1b;background-image:url('booking-spa-light.webp')}
.visit::before{background-color:rgba(31,24,29,.4)}
.visit .visit-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-template-areas:"booking location" "booking phone";align-items:start;column-gap:clamp(48px,7vw,100px);row-gap:32px;max-width:920px;margin-inline:auto;text-align:left}
.visit .booking-main{grid-area:booking;align-self:center}
.visit .visit-contact-block:first-child{grid-area:location}
.visit .visit-contact-block:last-child{grid-area:phone}
.visit .visit-grid>div,.visit .visit-grid .booking-main,.visit .visit-grid>div:last-child{border:0;padding:0}
:where(.visit) h2{font-family:var(--editorial);font-size:var(--section-title);font-weight:400;line-height:1.15;letter-spacing:-.012em}
.visit .booking-main h2{max-width:16ch;margin:0;color:#fffafb}
.visit .visit-grid h3{font-family:var(--sans);font-size:clamp(1.125rem,1.05rem + .35vw,1.375rem);font-weight:700;line-height:1.35;letter-spacing:-.01em;margin:0 0 16px;color:#fffafb}
.visit .visit-grid p,.visit .visit-grid address,.visit .phone{font-family:var(--sans);font-size:15px;line-height:1.7;letter-spacing:0;color:#fffafb}
.visit .phone{font-weight:700}
.visit .visit-grid address a,.visit .visit-grid .phone{font-family:var(--sans);font-size:16px;font-weight:700;line-height:1.6;letter-spacing:0;color:#fffafb;text-decoration:none}
.visit .visit-grid address a:hover,.visit .visit-grid .phone:hover{color:#fffafb}
.visit .visit-grid address a:focus-visible,.visit .visit-grid .phone:focus-visible{outline-color:#fffafb}
.visit .visit-contact-block{display:flex;flex-direction:column;align-items:flex-start}
.visit .visit-contact-lines{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.visit .visit-contact-lines>a{display:block;font-size:16px;line-height:1.6;font-weight:700}
.visit .visit-contact-lines .visit-contact-details{margin:0;font-size:15px;line-height:1.7;color:#fffafb}
.visit .booking-main .button{margin-top:28px}
.visit .booking-main>p{font-size:15px;margin-top:12px}
.visit .button-light{background:var(--paper);border-color:var(--paper);color:#292329;font-size:16px;line-height:1.5}
.visit .button-light:hover{background:#fffafb;border-color:#fffafb;color:#292329}
@media(max-width:760px){
  .visit{background-position:14% center;padding-block:56px}
  .visit .visit-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"booking" "location" "phone";row-gap:32px;max-width:440px;padding-left:clamp(24px,8vw,56px)}
  .visit .visit-grid .booking-main{width:100%;margin-bottom:12px}
  .visit .booking-main .button{min-width:0;max-width:100%}
  .visit .visit-grid h3{margin-bottom:10px}
}

.footer{padding-top:clamp(4.5rem,9vw,7.5rem);background:#1f1b1b;border-top:0;font-size:1rem}
.footer-container{width:min(90%,1096px);margin-inline:auto}
.footer__grid{display:grid;grid-template-columns:minmax(18rem,1fr) auto auto;column-gap:clamp(2rem,11%,9rem);row-gap:clamp(2rem,5vw,5rem);padding-bottom:clamp(4.5rem,9vw,7.5rem)}
.footer__grid>div+div{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem}
.footer__grid .brand{min-height:3.75rem}
.footer__tagline{margin-top:1.5rem;line-height:1.65;color:#d0c8c3;max-width:23rem}
.footer h3{margin-bottom:1rem;color:#fffafb}
.footer__list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;font-size:1rem;line-height:1.65}
.footer__list a{display:inline-block;padding-block:.55rem;margin-block:-.55rem;color:#e5deda;text-decoration:none;overflow-wrap:anywhere;transition:color .2s ease-out}
.footer__list a:hover{color:#fff}
.footer__bottom{display:flex;min-height:5rem;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem 2rem;border-top:1px solid #625b56;font-size:.85rem;color:#d0c8c3;padding-block:16px}
.footer__bottom p{margin:0;color:inherit;font-size:inherit}
.footer__bottom a,.footer__bottom .privacy-trigger{display:inline-block;padding-block:.5rem;margin-block:-.5rem;color:inherit;text-decoration:none}
.footer__bottom a:hover,.footer__bottom .privacy-trigger:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.footer__bottom-links{display:flex;flex-wrap:wrap;gap:1.5rem}
@media(max-width:1024px){.footer__grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(2rem,5vw,5rem)}.footer__grid>div:first-child{grid-column:1/-1}}
@media(max-width:650px){.footer__grid{grid-template-columns:minmax(0,1fr);gap:2.5rem}.footer__grid .brand{min-height:2.75rem}.footer__bottom{justify-content:center;text-align:center}.footer__bottom-links{justify-content:center}}

.contact-page .header.wrap{background:var(--paper)}
.contact-main{padding-block:var(--section-space)}
.contact-page-heading{margin-bottom:clamp(48px,6vw,80px)}
.contact-page-heading h1{font-family:var(--editorial);font-size:clamp(2.5rem,4.5vw,4.25rem);font-weight:400;line-height:1.15;letter-spacing:-.012em;margin-bottom:20px}
.contact-page-heading>p{max-width:38rem;font-size:1.0625rem}
.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(48px,7vw,100px);align-items:start}
.contact-details h2,.contact-panel h2{font-family:var(--editorial);font-size:clamp(2rem,2.5vw,2.5rem);font-weight:400;line-height:1.2;margin-bottom:32px}
.contact-detail+.contact-detail{margin-top:32px}
.contact-detail h3{font-size:1rem;line-height:1.5;margin-bottom:10px}
.contact-detail address{font-style:normal;color:var(--text)}
.contact-phone{display:block;font-size:1.5rem;margin-bottom:4px;color:var(--heading)}
.contact-email{display:inline-block;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
.contact-detail>a+p{margin-top:14px;font-size:.9375rem}
.contact-detail .text-link{margin-top:8px}
.contact-detail .button{margin-top:18px}
.contact-layout .contact-panel{padding:0;border:0}
.contact-layout .form-bottom{flex-direction:column;align-items:flex-start}
.contact-layout .form-bottom>p{max-width:none}
.contact-layout .form-result{border-left:0;border:1px solid var(--line);background:var(--white)}
.contact-layout .form-row{gap:16px}
.contact-layout .field input,.contact-layout .field textarea{background:var(--white);border-color:#a18e99}
.contact-layout .field textarea{min-height:160px}
.contact-layout .form-status{color:var(--heading)}
@media(max-width:760px){.contact-layout{grid-template-columns:1fr;gap:48px}.contact-layout .contact-panel{border-top:1px solid var(--line);padding-top:40px}.contact-page-heading{margin-bottom:40px}}
@media(max-width:480px){.contact-layout .form-row{gap:0}}
