/*
Theme Name: CA Cosmetics Blocks
Theme URI: https://ca-kosmetik.ch/
Author: CA Cosmetics
Description: Eigenständiges, schlankes Gutenberg-Block-Theme für CA Cosmetics.
Version: 1.7.1
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
Text Domain: ca-cosmetics-blocks
*/

:root { color-scheme: light; }
html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; }
header.wp-block-template-part {
  background: #fff;
  box-shadow: 0 1px 0 rgba(45, 48, 50, .08);
  position: sticky;
  top: 0;
  z-index: 1000;
}
.ca-contact-bar { background: linear-gradient(90deg, #1f2021, #383a3b); color: #fff; font-size: .78rem; padding: 8px 24px; }
.ca-contact-bar p { margin: 0; }
.ca-contact-bar a { color: #fff; text-decoration: none; }
.ca-contact-bar p::first-letter { color: #9bea00; }
.ca-main-header { border-bottom: 1px solid #e9e7e1; padding: 14px 24px; }
.ca-main-header .wp-block-image { margin: 0; }
.ca-primary-nav .wp-block-navigation-item__content { padding: 13px 3px 10px; }
.ca-primary-nav .wp-block-navigation-item__content:hover { color: #78ad00; }
.ca-primary-nav .current-menu-item .wp-block-navigation-item__content { border-bottom: 2px solid #9bea00; color: #78ad00; }
.admin-bar header.wp-block-template-part { top: 32px; }
a { text-underline-offset: .18em; }
.ca-short-rule { border: 0; height: 2px; margin: 18px 0 24px; width: 38px !important; }
.ca-hero { background: #fff; }
.ca-hero > .wp-block-columns { gap: 0; margin-bottom: 0; }
.ca-hero-copy { padding: clamp(42px, 7vw, 100px) clamp(28px, 5vw, 80px); }
.ca-hero-copy h1 { font-size: clamp(2.7rem, 4.6vw, 5rem) !important; }
.ca-home-eyebrow { font-size:clamp(1.08rem,1.45vw,1.28rem) !important; font-weight:600; letter-spacing:.01em; line-height:1.35; }
.ca-hero-media figure, .ca-hero-media img { height: 100%; margin: 0; min-height: 520px; width: 100%; }
.ca-hero-media img { object-fit: cover; }
.ca-treatments { background: radial-gradient(circle at 50% 20%, #fff, #faf6ef 70%); padding: 54px 24px 68px; }
.ca-treatments > h2 { font-size: clamp(1.9rem, 3vw, 3rem); margin-top: 0; }
.ca-treatments > .ca-short-rule { margin: 12px auto 30px; }
.ca-treatment-grid { display: grid !important; gap: 18px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 auto 28px; max-width: var(--ca-treatment-grid-width, 1080px); width: 100%; }
.ca-treatment-card { background: #fff; border: 1px solid #e8e3da; border-radius: 10px; box-shadow: 0 8px 20px rgba(61, 55, 48, .05); min-width: 0; overflow: hidden; padding-bottom: 18px; position: relative; transition: transform .22s ease, box-shadow .22s ease; }
.ca-treatment-card:hover { box-shadow: 0 18px 38px rgba(61, 55, 48, .11); transform: translateY(-4px); }
.ca-treatment-card figure { margin: 0; }
.ca-treatment-card img { aspect-ratio: 1.24/1; height: auto; object-fit: cover; width: 100%; }
.ca-treatment-card .ca-treatment-icon { display: none !important; }
.ca-treatment-card h3 { font-size: 1.05rem; line-height: 1.25; margin: 4px 10px 8px; }
.ca-treatment-card p { line-height: 1.45; margin: 0 12px; }
.ca-treatment-card-link { inset: 0; position: absolute; z-index: 5; }
.ca-treatment-card:focus-within { box-shadow: 0 0 0 3px rgba(155,234,0,.35); }
.ca-treatment-page { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); margin-top: calc(var(--wp--preset--spacing--50) * -1); }
.ca-treatment-hero { align-items: center; background: linear-gradient(110deg,#fff,#faf4ef); display: grid; gap: 0; grid-template-columns: minmax(0, 46%) minmax(0, 54%); }
.ca-treatment-hero-copy { padding: clamp(42px,6vw,90px); }
.ca-treatment-hero-copy h1 { font-size: clamp(2.4rem,4.5vw,4.7rem); margin: 8px 0 20px; }
.ca-treatment-hero-image { height: 100%; min-height: 440px; object-fit: cover; width: 100%; }
.ca-treatment-content { margin: 0 auto; max-width: 1180px; padding: 58px 24px 82px; }
.ca-service-section { margin: 0 0 54px; }
.ca-service-section > h2 { font-size: clamp(1.8rem,3vw,2.7rem); text-align: center; }
.ca-service-grid { display: grid; gap: 18px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.ca-service-card { background:#fff; border:1px solid #e8e3da; border-radius:16px; box-shadow:0 10px 28px rgba(61,55,48,.06); padding:24px; }
.ca-service-card h3 { font-size:1.25rem; margin:0 0 12px; }
.ca-service-meta { border-top:1px solid #eee5df; display:flex; gap:12px; justify-content:space-between; margin-top:18px; padding-top:14px; }
.ca-service-price { color:#6d9400; font-weight:700; white-space:nowrap; }
.ca-price-table { background:#fff; border:1px solid #e8e3da; border-radius:16px; overflow:hidden; width:100%; }
.ca-price-row { display:grid; gap:12px; grid-template-columns:minmax(0,1fr) 110px 110px; padding:12px 18px; }
.ca-price-four .ca-price-row { grid-template-columns:minmax(0,1fr) 105px 105px 105px; }
.ca-price-row:nth-child(even) { background:#faf7f2; }
.ca-price-head { background:#3f4144!important; color:#fff; font-weight:700; }
.ca-treatment-note { background:#f4e8e5; border-left:4px solid #9bea00; border-radius:10px; padding:18px 22px; }
.ca-treatment-actions { margin-top:34px; text-align:center; }
.ca-treatment-actions a { background:#9bea00; border-radius:999px; color:#303234; display:inline-block; font-weight:700; padding:13px 24px; text-decoration:none; }
.ca-appointment-section { background:linear-gradient(115deg,#fff,#faf7f2); border:1px solid #e8e3da; border-radius:20px; box-shadow:0 14px 36px rgba(61,55,48,.07); display:none; margin:56px 0 0; padding:clamp(26px,4vw,48px); scroll-margin-top:130px; }
.ca-appointment-section:target { animation:ca-form-open .25s ease-out; display:block; }
@keyframes ca-form-open { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
.ca-appointment-intro { margin:0 auto 28px; max-width:780px; text-align:center; }
.ca-appointment-intro h2 { font-size:clamp(1.8rem,3vw,2.8rem); margin:6px 0 14px; }
.ca-eyebrow { color:#6d9400; font-size:.86rem; font-weight:700; letter-spacing:.08em; margin:0; text-transform:uppercase; }
.ca-appointment-form { display:grid; gap:18px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.ca-appointment-form label { display:flex; flex-direction:column; gap:7px; }
.ca-appointment-form label > span { font-size:.92rem; font-weight:650; }
.ca-appointment-form input:not([type="checkbox"]), .ca-appointment-form select, .ca-appointment-form textarea { background:#fff; border:1px solid #cfc8c0; border-radius:9px; box-sizing:border-box; color:#3f4144; font:inherit; min-height:48px; padding:10px 12px; width:100%; }
.ca-appointment-form textarea { min-height:116px; resize:vertical; }
.ca-appointment-form input:focus, .ca-appointment-form select:focus, .ca-appointment-form textarea:focus { border-color:#78ad00; box-shadow:0 0 0 3px rgba(155,234,0,.22); outline:0; }
.ca-form-wide { grid-column:1/-1; }
.ca-form-consent { align-items:flex-start; flex-direction:row !important; gap:10px !important; }
.ca-form-consent input { accent-color:#78ad00; flex:0 0 auto; height:18px; margin-top:3px; width:18px; }
.ca-form-note { color:#716c67; font-size:.86rem; margin:0; }
.ca-appointment-form button { background:#9bea00; border:0; border-radius:999px; color:#303234; cursor:pointer; font:inherit; font-weight:700; padding:14px 24px; }
.ca-appointment-form button:hover { background:#86cc00; }
.ca-form-message { border-radius:10px; margin:0 0 24px; padding:14px 18px; }
.ca-form-success { background:#edf8dd; border:1px solid #aed36a; }
.ca-form-warning { background:#fff4d8; border:1px solid #e4bf59; }
.ca-form-error { background:#fff0ee; border:1px solid #d99a92; }
.ca-honeypot { left:-9999px; position:absolute; }
.ca-reveal { opacity:0; transform:translateY(22px); transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1); }
.ca-reveal.ca-visible { opacity:1; transform:none; }
html.ca-animations-ready .ca-animate {
	opacity:0;
	transform:none;
	transition:opacity var(--ca-animation-duration,650ms) cubic-bezier(.2,.7,.2,1),transform var(--ca-animation-duration,650ms) cubic-bezier(.2,.7,.2,1);
	transition-delay:var(--ca-animation-delay,0ms);
	will-change:opacity,transform;
}
html.ca-animations-ready .ca-animation-fade-up { transform:translateY(28px); }
html.ca-animations-ready .ca-animation-fade-down { transform:translateY(-28px); }
html.ca-animations-ready .ca-animation-slide-left { transform:translateX(-42px); }
html.ca-animations-ready .ca-animation-slide-right { transform:translateX(42px); }
html.ca-animations-ready .ca-animation-zoom { transform:scale(.94); }
html.ca-animations-ready .ca-animate.ca-animated { opacity:1; transform:none; }
.wp-block-ca-kosmetik-image.ca-image-block,
.ca-image-block { box-sizing:border-box; margin:0; overflow:visible !important; width:100%; }
.ca-image-block-frame { -webkit-clip-path:inset(0 round var(--ca-image-radius,0)); border-radius:var(--ca-image-radius,0) !important; clip-path:inset(0 round var(--ca-image-radius,0)); isolation:isolate; overflow:hidden !important; position:relative; width:100%; }
.ca-image-block-frame img { border-radius:inherit !important; display:block; max-width:none; width:100%; }
.ca-image-block-editor { margin:0; overflow:visible; width:100%; }
.ca-image-block-preview { box-sizing:border-box; width:100%; }
.ca-image-block-preview .ca-image-block-frame { overflow:hidden !important; }
.ca-image-block-preview img { display:block; max-width:none; }
.ca-image-rounded img,
.ca-image-rounded .wp-block-media-text__media { border-radius:var(--ca-image-radius,0) !important; }
.wp-block-cover.ca-image-rounded,
.ca-image-rounded > .wp-block-cover { border-radius:var(--ca-image-radius,0) !important; overflow:hidden; }
.ca-image-rounded .wp-block-media-text__media { overflow:hidden; }
.ca-container-rounded {
	border-radius:var(--ca-container-radius,0) !important;
	overflow:hidden !important;
}
.wp-block-column.ca-column-responsive.ca-column-vertical-desktop-top { align-self:flex-start !important; }
.wp-block-column.ca-column-responsive.ca-column-vertical-desktop-center { align-self:center !important; }
.wp-block-column.ca-column-responsive.ca-column-vertical-desktop-bottom { align-self:flex-end !important; }
.ca-treatment-overview { margin:0 auto; max-width:1180px; padding:42px 24px 76px; }
.ca-treatments .ca-treatment-overview { padding:0; }
.ca-treatment-overview .ca-treatment-card { padding:16px 16px 24px; text-align:center; }
.ca-treatment-overview .ca-treatment-card img { border-radius:10px; aspect-ratio:1.65/1; }
.ca-treatment-overview .ca-treatment-card h3 { margin-top:18px; }
.ca-treatment-editor-hero { background:linear-gradient(110deg,#fff,#faf4ef); border-radius:18px; margin-bottom:48px; overflow:hidden; }
.ca-treatment-editor-hero .wp-block-media-text__content { padding:clamp(28px,5vw,64px); }
.ca-treatment-editor-hero .wp-block-media-text__media img { min-height:380px; object-fit:cover; }
.ca-editable-section-title { margin-top:46px; text-align:center; }
.ca-editable-price-table { border:1px solid #e8e3da; border-radius:16px; box-shadow:0 10px 28px rgba(61,55,48,.05); overflow-x:auto; }
.ca-editable-price-table table { border-collapse:collapse; margin:0; min-width:680px; width:100%; }
.ca-editable-price-table th { background:#3f4144; color:#fff; }
.ca-editable-price-table th,.ca-editable-price-table td { border:0; border-bottom:1px solid #eee5df; padding:13px 16px; text-align:left; }
.ca-editable-price-table tbody tr:nth-child(even) { background:#faf7f2; }
.ca-managed-price-list { margin-top:clamp(30px,5vw,58px); }
.ca-managed-price-section + .ca-managed-price-section { margin-top:clamp(34px,5vw,58px); }
.ca-editable-note { background:#f4e8e5; border-left:4px solid #9bea00; border-radius:10px; padding:18px 22px; }
.ca-about { background: #fff; }
.ca-about > .wp-block-columns { gap: 0; margin-bottom: 0; }
.ca-about-copy { padding: clamp(42px, 6vw, 88px) clamp(28px, 5vw, 74px); }
.ca-about-media figure, .ca-about-media img { height: 100%; margin: 0; min-height: 510px; width: 100%; }
.ca-about-media img { object-fit: cover; }
.ca-signature { font-family: cursive !important; font-size: 2rem; font-style: italic; margin-bottom: 0; transform: rotate(-4deg); }
.ca-voucher-section { background: linear-gradient(100deg, #fff9f7, #f5e6e3, #fff9f7); padding: 34px 24px 48px; }
.ca-voucher-section > p { margin-bottom: 0; }
.ca-voucher-section > h2 { font-size: clamp(2rem, 3vw, 3.3rem); margin-top: 0; }
.ca-voucher-grid ul.products { display: grid; gap: 20px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ca-voucher-grid ul.products::before, .ca-voucher-grid ul.products::after { display: none; }
.ca-voucher-grid ul.products li.product { background: rgba(255,255,255,.88); border: 1px solid #eadfdb; border-radius: 12px; float: none; margin: 0; padding: 16px; text-align: center; width: auto; }
.ca-voucher-grid ul.products li.product::before { background: #f7e7e4 url("assets/voucher-gift.jpg") center/cover no-repeat; border-radius: 8px; content: ""; display: block; height: 104px; margin-bottom: 14px; }
.ca-voucher-grid .woocommerce-loop-product__title { font-family: var(--wp--preset--font-family--sans); font-size: 1rem !important; }
.ca-voucher-grid .price { color: #3f4144 !important; font-size: 1.1rem !important; }
.ca-voucher-grid .button { background: transparent !important; border: 1px solid #dca9a0 !important; color: #b96e62 !important; font-size: .75rem; text-transform: uppercase; }
.ca-contact-section { background: linear-gradient(110deg, #f5f2d8, #eef1df 48%, #fff); padding: 10px 24px; }
.ca-contact-copy { padding: clamp(36px, 5vw, 72px) 18px; }
.ca-contact-media img { aspect-ratio: 1.8/1; border-radius: 24px; box-shadow: 0 16px 45px rgba(45,48,50,.13); object-fit: cover; width: 100%; }
.ca-google-maps-link { display:inline-block; font-weight:650; margin:5px 0 9px; }
.ca-home-appointment { box-sizing:border-box; margin:24px auto 0; max-width:1320px; }
.ca-home-appointment + .ca-holiday-notice { margin-top:16px; }
.ca-home-main { margin:0; }
.ca-home-main > .wp-block-post-content { margin:0; }
.ca-footer { padding: 18px 24px; }
.ca-footer p { margin: 0; }
.ca-footer a { color: #fff; text-decoration: none; }
.ca-legal-page { margin:0 auto; max-width:920px; padding:18px 24px 72px; }
.ca-legal-page h1 { margin-bottom:12px; }
.ca-legal-page h2 { font-size:clamp(1.35rem,2vw,1.7rem); margin-top:38px; }
.ca-legal-page li { margin-bottom:8px; }
.ca-legal-meta { color:#716c67; font-size:.9rem; }
.woocommerce ul.products li.product { background: #fff; border: 1px solid #e8e7e2; border-radius: 18px; padding: 18px; }
.woocommerce span.onsale { background: #9bea00; color: #303234; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button { border-radius: 999px; }
@media (max-width: 781px) {
  .admin-bar header.wp-block-template-part { top: 46px; }
  .ca-contact-bar { display: none; }
  .ca-main-header { padding: 10px 16px; }
  .ca-main-header img { max-width: 170px; }
  .ca-primary-nav .wp-block-navigation__responsive-container-open {
    align-items: center;
    border-radius: 50%;
    display: flex;
    height: 44px;
    justify-content: center;
    padding: 0;
    width: 44px;
  }
  .ca-primary-nav .wp-block-navigation__responsive-container-open svg { height: 28px; width: 28px; }
  .ca-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
    align-items: stretch;
    background: rgba(31, 32, 33, .34) !important;
    padding: 0 !important;
  }
  .ca-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
    background: #fff;
    box-shadow: -14px 0 34px rgba(31, 32, 33, .16);
    height: 100%;
    margin: 0 0 0 auto !important;
    max-width: 360px !important;
    overflow-y: auto;
    padding: 0 28px 32px;
    width: min(88vw, 360px);
  }
  .ca-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { height: 100%; }
  .ca-primary-nav .wp-block-navigation__responsive-container-close {
    align-items: center;
    border-radius: 50%;
    display: flex;
    height: 44px;
    justify-content: center;
    right: 16px;
    top: 14px;
    width: 44px;
  }
  .ca-primary-nav .wp-block-navigation__responsive-container-close svg { height: 30px; width: 30px; }
  .ca-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    align-items: stretch !important;
    gap: 0 !important;
    padding-top: 76px !important;
  }
  .ca-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    align-items: stretch !important;
    gap: 0 !important;
    width: 100%;
  }
  .ca-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    align-items: stretch !important;
    width: 100%;
  }
  .ca-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    border-bottom: 1px solid #e6e8e2;
    box-sizing: border-box;
    color: #303234;
    display: block;
    font-size: 1.08rem;
    font-weight: 650;
    line-height: 1.3;
    padding: 14px 2px !important;
    text-align: left;
    width: 100%;
  }
  .ca-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container:last-of-type > .wp-block-navigation-item:last-child > .wp-block-navigation-item__content { border-bottom: 0; }
  .ca-primary-nav .wp-block-navigation__responsive-container.is-menu-open .current-menu-item .wp-block-navigation-item__content { color: #6f9f00; }
  .ca-hero-copy, .ca-about-copy { padding: 42px 24px !important; }
  .ca-hero-media figure, .ca-hero-media img { min-height: 360px; }
  .ca-treatment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ca-treatment-hero { grid-template-columns:1fr; }
  .ca-treatment-hero-image { min-height:320px; }
  .ca-service-grid { grid-template-columns:1fr; }
  .ca-appointment-form { grid-template-columns:1fr; }
  .ca-form-wide { grid-column:auto; }
  .ca-price-row { grid-template-columns:minmax(0,1fr) 82px 82px; font-size:.88rem; }
  .ca-price-four { overflow-x:auto; }
  .ca-price-four .ca-price-row { grid-template-columns:minmax(150px,1fr) 78px 78px 78px; min-width:470px; }
  .ca-about-media figure, .ca-about-media img { min-height: 380px; }
  .ca-voucher-grid ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ca-contact-section { padding: 20px 22px 40px; }
  .wp-block-column.ca-column-responsive.ca-column-vertical-mobile-top { align-self:flex-start !important; }
  .wp-block-column.ca-column-responsive.ca-column-vertical-mobile-center { align-self:center !important; }
  .wp-block-column.ca-column-responsive.ca-column-vertical-mobile-bottom { align-self:flex-end !important; }
}
@media (max-width: 781px) and (max-height: 500px) {
  .ca-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
    max-width: 390px !important;
    padding: 0 26px 18px;
    width: min(72vw, 390px);
  }
  .ca-primary-nav .wp-block-navigation__responsive-container-close { right: 12px; top: 6px; }
  .ca-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 52px !important; }
  .ca-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    font-size: 1rem;
    padding: 9px 2px !important;
  }
}
@media (min-width: 782px) and (max-width: 1024px) {
  .wp-block-column.ca-column-responsive.ca-column-vertical-tablet-top { align-self:flex-start !important; }
  .wp-block-column.ca-column-responsive.ca-column-vertical-tablet-center { align-self:center !important; }
  .wp-block-column.ca-column-responsive.ca-column-vertical-tablet-bottom { align-self:flex-end !important; }
}
@media (max-width: 480px) {
  .ca-treatment-grid, .ca-voucher-grid ul.products { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.ca-reveal,
	html.ca-animations-ready .ca-animate { opacity:1; transform:none; transition:none; }
}
