/* All-page layout contract. Themes own tokens; page components own behavior. */
body[data-website-page]{font-family:var(--theme-font);background:var(--theme-page);color:var(--theme-text)}
body[data-website-page] :is(h1,h2,h3){font-family:var(--theme-heading-font);font-weight:var(--theme-heading-weight)}
body:not([data-website-page="home"]) main.website-shell{padding-top:var(--theme-page-space);padding-bottom:var(--theme-page-space);min-height:55vh}
body:not([data-website-page="home"]) main.website-shell>h1,
body[data-website-page="services"] :is(.ta-services-title,.tb-services-title,.tc-services-title),
body[data-website-page="static"] :is(.ta-static-title,.tb-static-title,.tc-static-title){font:var(--theme-heading-weight) var(--theme-title-size)/1.12 var(--theme-heading-font);letter-spacing:var(--theme-title-spacing);margin:0 0 24px;word-break:normal;overflow-wrap:break-word}
body[data-website-page="service"] .service-detail>h1{margin-top:24px}
body:not([data-website-page="home"]) main.website-shell>:is(.shop-intro,.ta-static-intro,.tb-static-intro,.tc-static-intro){font-size:18px;line-height:1.75;color:var(--theme-muted);margin:0 0 32px;max-width:75ch}
body[data-website-page="services"] :is(.ta-services-intro,.tb-services-intro,.tc-services-intro){font-size:18px;line-height:1.75;color:var(--theme-muted);max-width:75ch}
body[data-website-page] :is(.builtin-page-content,.service-rich-text){line-height:1.8;word-break:normal;overflow-wrap:break-word}
body[data-website-page] .builtin-page-content{margin-bottom:var(--theme-section-space)}
body[data-website-page] :is(.shop-card,.ta-service-card,.tb-service-card,.tc-service-card,.contact-form,.website-testimonial-card,.checkout-card,.booking-card){background:var(--theme-surface);border-color:var(--theme-border);border-radius:var(--theme-radius);box-shadow:none}
body[data-website-page] :is(.shop-grid,.website-gallery-grid,.ta-service-grid,.tb-service-grid,.tc-service-grid){gap:var(--theme-grid-gap)}
body[data-website-page] :is(.shop-body,.ta-service-body,.tb-service-body,.tc-service-body,.contact-form,.website-testimonial-card){padding:var(--theme-card-space)}
body[data-website-page] :is(.shop-body h2,.ta-service-name,.tb-service-name,.tc-service-name,.contact-form h2,.contact-info h2){font-size:clamp(21px,2vw,25px);line-height:1.25;letter-spacing:-.02em}
body[data-website-page] :is(.shop-image,.ta-service-image,.tb-service-image,.tc-service-image){display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--theme-soft)}
body[data-website-page] .shop-placeholder{height:auto;aspect-ratio:4/3}
body[data-website-page] :is(.shop-price,.service-price){font-family:var(--theme-font);font-size:var(--theme-price-size);font-weight:700;color:var(--theme-text);line-height:1.3}
body[data-website-page] :is(.shop-price del,.service-price-original){font-size:15px;font-weight:400;color:var(--theme-muted)}
body[data-website-page] .service-detail-meta .service-price{font-size:30px}
body[data-website-page] :is(.shop,.contact-form,.booking-page) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){background:var(--theme-surface);color:var(--theme-text);border:1px solid var(--theme-border);border-radius:var(--theme-input-radius);font-family:var(--theme-font);font-size:16px;line-height:1.5}
body[data-website-page] :is(.shop,.contact-form,.booking-page) :is(input,select,textarea):focus{outline:2px solid var(--theme-primary);outline-offset:2px}
body[data-website-page] :is(.shop-checkout-button,.booking-button,.ta-service-book,.tb-service-book,.tc-service-book,.service-detail-book,.shop button:not(.shop-remove),.ta-home-button){display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 22px;background:var(--theme-primary);border:1px solid var(--theme-primary);border-radius:var(--theme-button-radius);color:var(--theme-button-text);font-family:var(--theme-font);font-size:14px;line-height:1.4;font-weight:600;text-decoration:none;cursor:pointer}
body[data-website-page] :is(.contact-form .shop-checkout-button,.checkout-review-button){display:flex;width:100%}
body[data-website-page] :is(.ta-service-details,.tb-service-details,.tc-service-details,.booking-button-secondary){display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 22px;border:1px solid var(--theme-border);border-radius:var(--theme-button-radius);background:var(--theme-surface);color:var(--theme-primary);font-family:var(--theme-font);font-size:14px;line-height:1.4;font-weight:600;text-decoration:none}
body[data-website-page] :is(.shop-checkout-button,.booking-button,.ta-service-book,.tb-service-book,.tc-service-book,.service-detail-book,.ta-home-button):hover{filter:brightness(.94)}
body[data-website-page] :is(.ta-service-details,.tb-service-details,.tc-service-details,.booking-button-secondary,.contact-links a):hover{background:var(--theme-soft);color:var(--theme-primary)}
body[data-website-page] :is(.website-gallery-heading h2,.testimonial-section-heading h2){font-size:clamp(28px,3.5vw,42px);line-height:1.2;letter-spacing:var(--theme-title-spacing);margin:0}
body[data-website-page] .website-gallery-heading a{font-size:14px;font-weight:600}
body[data-website-page] .website-gallery-grid a{border-radius:var(--theme-radius)}
body[data-website-page] .website-gallery-grid figcaption strong{font-family:var(--theme-heading-font);font-size:20px;font-weight:var(--theme-heading-weight)}
body[data-website-page] .website-gallery-grid figcaption p{font-size:15px;line-height:1.7}
body[data-website-page="gallery"] .website-gallery{padding-top:12px;padding-bottom:0}
body[data-website-page="testimonials"] .website-testimonials{padding-top:8px;padding-bottom:0}
body[data-website-page="testimonials"] .testimonial-section-heading{margin-bottom:12px}
body[data-website-page] .testimonial-review-text{font-size:16px;line-height:1.8}
body[data-website-page] .contact-grid{gap:clamp(24px,4vw,56px);align-items:start}
body[data-website-page] .contact-detail{color:var(--theme-text)}
body[data-website-page] .contact-detail>svg{color:var(--theme-primary)}
body[data-website-page] .contact-links{border-color:var(--theme-border)}
body[data-website-page] .contact-links a{border-color:var(--theme-border);color:var(--theme-primary);border-radius:var(--theme-button-radius);background:var(--theme-surface)}
body[data-website-page] .contact-map iframe{border-radius:var(--theme-radius);border-color:var(--theme-border)}
body[data-website-page] .service-detail{max-width:1180px}
body[data-website-page] .service-detail-intro{color:var(--theme-muted);font-size:18px}
body[data-website-page] .service-detail-image{border-radius:var(--theme-radius)}
body[data-website-page] .website-footer{color:var(--theme-muted);border-color:var(--theme-border);font-family:var(--theme-font)}
body[data-website-page] .website-language-form select{background:var(--theme-surface);color:var(--theme-text);border:1px solid var(--theme-border);border-radius:var(--theme-input-radius);font:inherit}
@media(max-width:640px){body[data-website-page] .website-gallery-grid{gap:16px}body[data-website-page] .contact-form{padding:20px}body[data-website-page] :is(.shop-body,.ta-service-body,.tb-service-body,.tc-service-body){padding:20px}body[data-website-page] .website-gallery-heading{align-items:baseline;flex-wrap:wrap}}
body:not([data-website-page="home"]) main h1{font-family:var(--theme-heading-font)!important}

.website-posts{padding-top:var(--theme-section-space);padding-bottom:var(--theme-section-space)}.website-posts-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.website-posts-heading h2{font-size:clamp(28px,3.5vw,42px);margin:0;letter-spacing:var(--theme-title-spacing)}.website-posts a{color:var(--theme-primary);text-underline-offset:3px}.website-posts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--theme-grid-gap)}.website-post-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--theme-border);border-radius:var(--theme-radius);overflow:hidden;background:var(--theme-surface)}.website-post-image{display:block;aspect-ratio:4/3;overflow:hidden}.website-post-image img{display:block;width:100%;height:100%;object-fit:cover}.website-post-copy{padding:var(--theme-card-space);display:flex;flex:1;flex-direction:column;align-items:flex-start}.website-post-copy time,.website-post-detail>time{font-size:13px;color:var(--theme-muted)}.website-post-copy h2{font-size:24px;line-height:1.3;margin:14px 0 12px;overflow-wrap:break-word}.website-post-copy h2 a{text-decoration:none;color:var(--theme-text)}.website-post-copy p{font-size:16px;line-height:1.75;margin:0 0 22px;color:var(--theme-muted);overflow-wrap:break-word}.website-post-more{margin-top:auto;font-size:14px;font-weight:600}.website-posts-page>.website-posts{padding-top:8px;padding-bottom:0}.website-posts-pagination{display:flex;justify-content:flex-end;gap:20px;margin-top:28px}.website-posts-pagination a,.website-post-back{color:var(--theme-primary)}.website-post-category-filters{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 28px}.website-post-category-filters a,.website-post-category{display:inline-flex;align-items:center;border:1px solid var(--theme-border);border-radius:999px;padding:5px 12px;font-size:13px;text-decoration:none;color:var(--theme-primary);background:var(--theme-surface)}.website-post-category-filters a[aria-current=page]{background:var(--theme-primary);border-color:var(--theme-primary);color:var(--theme-on-primary,#fff)}.website-post-category{margin-bottom:10px}.website-posts-page>.website-posts{padding-top:8px;padding-bottom:0}.website-posts-pagination{display:flex;justify-content:flex-end;gap:20px;margin-top:28px}.website-posts-pagination a,.website-post-back{color:var(--theme-primary)}body[data-website-page=post] .website-post-detail>h1{margin-top:24px}.website-post-cover{display:block;width:100%;height:auto;border-radius:var(--theme-radius);margin:28px 0}.website-post-body{margin-top:28px;max-width:78ch;line-height:1.85}.website-posts a:focus-visible{outline:2px solid var(--theme-primary);outline-offset:3px}@media(max-width:900px){.website-posts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.website-posts-grid{grid-template-columns:1fr}.website-posts-heading{align-items:baseline;flex-wrap:wrap}}
