/* Scoped shop design. Does not change shared admin or form styles. */
.chsf{--ink:#243b32;--muted:#637169;--gold:#f2b919;--line:#dce5df;background:#f5f7f5;color:var(--ink);padding-bottom:64px}.chsf *{box-sizing:border-box}.chsf [hidden]{display:none!important}.chsf .container{max-width:1200px}.chsf-intro{padding:58px 0 34px;background:#eaf0eb;border-bottom:1px solid var(--line)}.chsf-eyebrow{font-size:.72rem;letter-spacing:.15em;font-weight:800;color:#596c5e;display:block;margin-bottom:14px}.chsf-intro h1{font-size:clamp(2rem,4.1vw,3.35rem);font-weight:750;line-height:1.1;letter-spacing:-.035em;max-width:760px;margin:0 0 20px}.chsf-intro p{font-size:1.08rem;line-height:1.7;max-width:730px;margin:0;color:#52645a}.chsf-content{padding-top:28px}.chsf-notice{border-left:4px solid var(--gold);padding:15px 20px;background:#fff8e3;border-radius:0 8px 8px 0;font-size:.88rem;line-height:1.55}.chsf-notice strong{display:block;margin-bottom:3px;color:#695319}.chsf-notice p{margin:0;color:#6b6249}.chsf-catalog-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:32px 0 24px}.chsf-filters{display:flex;flex-wrap:wrap;gap:8px}.chsf-filter{background:#fff;border:1px solid var(--line);border-radius:30px;padding:9px 17px;font-size:.86rem;color:var(--ink);min-height:42px}.chsf-filter:hover{border-color:#819b88}.chsf-filter.is-active{background:var(--ink);color:white;border-color:var(--ink)}.chsf-count{white-space:nowrap;color:var(--muted);font-size:.85rem}.chsf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;padding:0}.chsf-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 5px 18px #243b3207;display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s}.chsf-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px #243b3210}.chsf-image{position:relative;isolation:isolate;aspect-ratio:1.12;background:#edf0e9;display:grid;place-items:center;padding:44px 48px 35px}.chsf-image-patches{background:#f3ecdf}.chsf-image-clothing{background:#e6ece8}.chsf-image-accessories{background:#eceae4}.chsf-image img{display:block;max-width:100%;max-height:215px;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 5px #00000014)}.chsf-stock{position:absolute;right:13px;top:13px;z-index:1;max-width:calc(100% - 26px);border-radius:6px;padding:7px 11px;font-size:.77rem;font-weight:750;line-height:1.3;box-shadow:0 2px 7px #0000000a}.chsf-stock-available{background:#234c39;color:white}.chsf-stock-low{background:#f7c644;color:#463400}.chsf-stock-planned{background:#fffffff2;color:#58645c}.chsf-placeholder{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:.65rem;letter-spacing:.06em;color:#6e746b}.chsf-card-body{padding:23px;display:flex;flex-direction:column;flex:1}.chsf-category{font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#7b877e;margin-bottom:10px}.chsf-card h2{font-size:1.21rem;line-height:1.35;font-weight:750;margin:0 0 10px;letter-spacing:-.02em}.chsf-card-body>p{color:var(--muted);font-size:.9rem;line-height:1.65;margin:0 0 24px}.chsf-card-bottom{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:auto;border-top:1px solid #eef1ed;padding-top:17px}.chsf-price{font-size:.8rem;color:#79837c}.chsf-details{background:none;border:0;padding:5px 0;color:var(--ink);font-size:.82rem;font-weight:750;min-height:38px;display:flex;align-items:center;gap:10px}.chsf-details span{font-size:1.3rem;color:#926b00}.chsf-story{margin-top:40px;background:#263f33;color:white;padding:34px;display:flex;gap:27px;align-items:flex-start;border-radius:13px}.chsf-story .chsf-eyebrow{color:#d5bb6c}.chsf-story-icon{font-size:2.5rem;color:var(--gold);line-height:1;border:1px solid #ffffff29;width:65px;height:65px;flex-shrink:0;display:grid;place-items:center;border-radius:50%}.chsf-story h2{font-size:1.65rem;color:#fff;margin:0 0 12px}.chsf-story p{color:#d4e0d7;max-width:740px;line-height:1.7;margin:0;font-size:.95rem}.chsf-contact{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:31px 0 0}.chsf-contact h2{font-size:1.2rem;font-weight:700;margin:0 0 9px}.chsf-contact p{font-size:.9rem;color:var(--muted);margin:0}.chsf-contact-button{color:var(--ink);background:var(--gold);padding:13px 20px;border-radius:7px;font-size:.88rem;font-weight:700;white-space:nowrap}.chsf-contact-button:hover{color:var(--ink);background:#e6ad10}.chsf-contact-button span{margin-left:16px}.chsf button:focus-visible,.chsf a:focus-visible{outline:3px solid #b87d00;outline-offset:4px}.chsf-dialog{border:1px solid var(--line);padding:24px;border-radius:14px;width:min(560px,calc(100% - 32px));max-height:85vh;overflow:auto;color:var(--ink)}.chsf-dialog::backdrop{background:#13271ed6}.chsf-dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;color:var(--muted);font-size:.8rem}.chsf-dialog-top button{border:1px solid var(--line);background:white;border-radius:50%;width:44px;height:44px;font-size:1.6rem;color:var(--ink)}.chsf-dialog h2{font-size:1.6rem}.chsf-dialog p{line-height:1.65}.chsf-dialog .chsf-image{border-radius:9px;margin-bottom:22px;aspect-ratio:1.7}.chsf-dialog .chsf-image img{max-height:170px}.chsf-dialog-note{font-size:.85rem;background:#fff8e3;padding:14px;border-radius:8px}
@media(max-width:991px){.chsf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chsf-image img{max-height:250px}}
@media(max-width:575px){.chsf-intro{padding:35px 0 28px}.chsf .container{padding-left:20px;padding-right:20px}.chsf-grid{grid-template-columns:1fr;gap:21px}.chsf-catalog-head{align-items:flex-start;flex-direction:column;gap:13px}.chsf-filter{padding:8px 14px}.chsf-image{aspect-ratio:1.25}.chsf-image img{max-height:220px}.chsf-story{padding:25px;gap:16px}.chsf-story-icon{display:none}.chsf-story h2{font-size:1.4rem}.chsf-contact{align-items:flex-start;flex-direction:column}.chsf-contact-button{white-space:normal}.chsf-card-body{padding:22px}.chsf-notice{padding:13px 16px}}
@media(prefers-reduced-motion:reduce){.chsf-card{transition:none}.chsf-card:hover{transform:none}}

.chsf-stock-empty{background:#eee6e4;color:#703c35}.chsf-live-status{padding:18px 0;color:#52645a}.chsf-live-status.is-error{color:#8c2b20}.chsf-card-body>p,.chsf-dialog p{white-space:pre-line;overflow-wrap:anywhere}.chsf-dialog .chsf-price{font-size:1.1rem;font-weight:700;color:var(--ink)}

.chsf-tax-note{font-size:.8rem;line-height:1.45;color:#59645f;margin:.65rem 0 0;overflow-wrap:anywhere}

/* Prominent product prices on cards and in the item dialog. */
.chsf .chsf-price{font-size:1.5rem;font-weight:800;line-height:1.25;color:var(--ink);white-space:nowrap}
.chsf .chsf-dialog .chsf-price{font-size:1.75rem;font-weight:800}

/* Produktfotos groß, vollständig und ohne zusätzliches Bild-Rechteck */
.chsf-image{overflow:hidden;padding:16px 20px 12px;}
.chsf-image img{width:100%;height:100%;max-height:none;object-fit:contain;transition:transform .15s ease;transform-origin:center center;}
.chsf-dialog .chsf-image{overflow:hidden;padding:15px;}
.chsf-dialog .chsf-image img{max-height:none;}
@media(max-width:600px){.chsf-image{padding:14px;}}

/* Gleiche feste Bildflaeche im Admin und Frontend.
   Die Positionierung wird ausschliesslich auf das Bild angewendet,
   unabhaengig von CSS-Grid-Berechnungen und Original-Bildformat. */
.chsf .chsf-card > .chsf-image,
.chsf .chsf-dialog .chsf-image {
  position:relative; display:block; padding:0; overflow:hidden;
}
.chsf .chsf-card > .chsf-image > img,
.chsf .chsf-dialog .chsf-image > img {
  position:absolute; inset:0; display:block; box-sizing:border-box;
  width:100%; height:100%; max-width:none; max-height:none;
  object-fit:contain; object-position:center center;
  margin:0; padding:0; border:0; background:transparent;
  transform-origin:center center;
}

/* Produktkachel: Frontend und Admin-Vorschau muessen identisch sein.
   Deshalb wird auch im Frontend contain verwendet; die individuelle Groesse
   erfolgt ueber die gespeicherten Admin-Werte fuer Skalierung / X / Y. */
.chsf .chsf-card > .chsf-image > img {
  object-fit:contain;
  object-position:center center;
}
