/* Component defaults from v3. Only component selectors; generated Elementor selectors override these. */
/* Size standalone photos on the actual flex/grid item, not only its child. */
:is(.elementor-widget-csc-photo, .elementor-widget-csc-experience-photo) { position: relative; width: 100%; aspect-ratio: 4 / 5; }
/* The frame fills the widget box. Safari ignores height: 100% when the widget height comes from aspect-ratio + max-height
   and falls back to the frame's own ratio, overflowing into the next section; absolute fill avoids percentages. */
:is(.elementor-widget-csc-photo, .elementor-widget-csc-experience-photo) .csc-photo { position: absolute; inset: 0; width: auto; height: auto; aspect-ratio: auto; }
:is(.csc-catalog, .csc-related, .csc-detail, .csc-photo, .csc-experience-title, .csc-experience-body, .csc-facts, .csc-breadcrumb, .csc-request) { box-sizing: border-box; min-width: 0; overflow-wrap: anywhere; }
:is(.csc-catalog, .csc-related, .csc-detail, .csc-photo, .csc-experience-title, .csc-experience-body, .csc-facts, .csc-breadcrumb) { font-family: var(--csc-text, "Manrope", "Helvetica Neue", Arial, sans-serif); font-size: 17px; line-height: 1.6; color: var(--csc-ink, #121e2c); }
:is(.csc-catalog *, .csc-related *, .csc-detail *, .csc-facts *) { box-sizing: border-box; min-width: 0; }
:is(.csc-photo) { position: relative; display: grid; place-items: center; width: 100%; aspect-ratio: 4 / 5; margin: 0; overflow: hidden; background: #e1d8c6; }
:is(.csc-photo img) { display: block; width: 100%; height: 100%; max-width: 100%; object-fit: cover; position: absolute; inset: 0; }
:is(.csc-photo-empty) { color: var(--csc-muted, #4a4a46); text-align: center; font-size: 15px; }
:is(.csc-photo-empty > span) { padding: 20px; }
:is(.csc-group) { --csc-catalog-gap: var(--csc-gap, clamp(16px, 2vw, 28px)); --csc-catalog-track: calc((100% - 11 * var(--csc-catalog-gap)) / 12); display: grid; grid-template-columns: minmax(0, calc(4 * var(--csc-catalog-track) + 3 * var(--csc-catalog-gap))) minmax(0, 1fr); align-items: center; gap: calc(var(--csc-catalog-track) + 2 * var(--csc-catalog-gap)); padding: clamp(64px, 7vw, 110px) var(--csc-m, clamp(20px, 5vw, 80px)); }
:is(.csc-group-alt) { background: var(--csc-cream, #ece5d7); direction: rtl; }
:is(.csc-group > *) { direction: ltr; }
:is(.csc-group-title, .csc-experience-title) { margin: 0; color: var(--csc-ink, #121e2c); font-family: var(--csc-display, "Bodoni Moda", Georgia, serif); font-size: clamp(38px, 4.4vw, 66px); font-weight: 500; line-height: 1.06; letter-spacing: -.02em; font-variation-settings: "opsz" 28; }
:is(.csc-group-description) { margin-top: clamp(24px, 2.2vw, 32px); font-size: clamp(19px, 1.4vw, 21px); line-height: 1.55; max-width: 58ch; }
/* Group photo reaches the page edge on its side, as in the other photo + text sections.
   Elementor resets figure margins with .elementor .elementor-widget:not(…):not(…) figure (0,4,1). */
.elementor .elementor-widget.elementor-widget-csc-experience-catalog .csc-group > figure.csc-photo { margin: 0 0 0 calc(var(--csc-m, clamp(20px, 5vw, 80px)) * -1); width: calc(100% + var(--csc-m, clamp(20px, 5vw, 80px))); max-height: min(80svh, 600px); }
.elementor .elementor-widget.elementor-widget-csc-experience-catalog .csc-group-alt > figure.csc-photo { margin: 0 calc(var(--csc-m, clamp(20px, 5vw, 80px)) * -1) 0 0; }
:is(.csc-group-description p) { margin: 0; }
:is(.csc-entries, .csc-related-list) { list-style: none; padding: 0; margin: clamp(28px, 3vw, 44px) 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px var(--csc-gap, clamp(16px, 2vw, 28px)); }
:is(.csc-card) { margin: 0; padding: 0; }
:is(.csc-card-link) { display: block; height: 100%; padding: 16px 0; text-decoration: none; color: inherit; transition: background-color .2s; }
:is(.csc-card-title) { display: block; margin-top: 18px; font: 500 clamp(21px, 1.75vw, 26px)/1.2 var(--csc-display, "Bodoni Moda", Georgia, serif); font-variation-settings: "opsz" 28; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; text-decoration-color: var(--csc-gold, #c4af76); }
:is(.csc-card-description) { display: block; margin-top: 6px; color: var(--csc-muted, #4a4a46); }
/* Catalogue entries: the hover panel extends 18px beyond the text column (as in v3),
   drawn by a pseudo-element so the clickable area stays inside the cell. */
:is(.csc-entries .csc-card) { position: relative; z-index: 0; }
:is(.csc-entries .csc-card-link) { position: relative; }
:is(.csc-entries .csc-card-link)::before { content: ""; position: absolute; inset: 0 -18px; z-index: -1; pointer-events: none; transition: background-color .2s; }
:is(.csc-entries .csc-card-link:is(:hover, :focus-visible))::before { background: var(--csc-cream, #ece5d7); }
:is(.csc-group-alt .csc-entries .csc-card-link:is(:hover, :focus-visible))::before { background: var(--csc-paper, #f7f7f4); }
:is(.csc-card-link:is(:hover, :focus-visible) .csc-card-title) { text-decoration-color: currentColor; }
:is(.csc-related) { padding: clamp(72px, 8vw, 120px) var(--csc-m, clamp(20px, 5vw, 80px)); background: var(--csc-cream, #ece5d7); }
:is(.csc-related-list) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--csc-gap, clamp(16px, 2vw, 28px)); margin-top: clamp(32px, 4vw, 56px); }
:is(.csc-related .csc-card-link) { padding: 0; }
:is(.csc-related .csc-photo) { aspect-ratio: 3 / 2; }
:is(.csc-related .csc-photo img) { transition: transform .5s ease; }
:is(.csc-related .csc-card-link:hover img) { transform: scale(1.03); }
:is(.csc-related .csc-card-title) { margin-top: 18px; text-decoration-color: currentColor; }
:is(.csc-related .csc-photo) { background: #ddd3bf; }
:is(.csc-rtype-alt .csc-photo-empty) { background: #ddd3bf; }
:is(.csc-experience-body) { color: var(--csc-muted, #4a4a46); }
:is(.csc-experience-body > *) { margin: 0; }
:is(.csc-experience-body > * + *) { margin-top: 16px; }
:is(.csc-experience-body > p:first-child) { font-size: clamp(19px, 1.4vw, 21px); line-height: 1.55; max-width: 58ch; color: var(--csc-ink, #121e2c); }
:is(.csc-facts) { display: grid; gap: 14px; margin: 0; }
:is(.csc-fact) { display: grid; /* 40vw, not 40%: a percentage track inflates the height in intrinsic sizing */ grid-template-columns: minmax(0, min(var(--csc-label-width, 110px), 40vw)) minmax(0, 1fr); gap: 16px; }
:is(.csc-fact dt) { color: var(--csc-muted, #4a4a46); }
:is(.csc-fact dd) { margin: 0; }
:is(.csc-breadcrumb) { font-size: 15px; color: var(--csc-muted, #4a4a46); }
:is(.csc-breadcrumb a) { color: inherit; }
:is(.csc-request) { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; min-height: 48px; padding: 12px 26px; background: var(--csc-gold, #c4af76); color: var(--csc-ink, #121e2c); font: 600 15px/1.2 var(--csc-text, "Manrope", Arial, sans-serif); text-decoration: none; text-align: center; white-space: normal; border: 0; border-radius: 0; transition: background-color .2s, color .2s; }
:is(.csc-request:is(:hover, :focus-visible)) { background: var(--csc-ink, #121e2c); color: var(--csc-cream, #ece5d7); }
:is(.csc-detail) { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(28px, 7vw, 110px); align-items: center; padding: clamp(40px, 5vw, 72px) var(--csc-m, 5vw); }
:is(.csc-detail-text > * + *) { margin-top: 24px; }
:is(.csc-card-link, .csc-request, .csc-breadcrumb a):focus-visible { outline: 2px solid var(--csc-gold, #c4af76); outline-offset: 3px; }
/* Widget photo reaching the left page edge: Elementor drops calc() widget margins, so the class carries it. */
.elementor.elementor .e-con > .elementor-widget.csc-bleed-start { --container-widget-width: calc(100% + var(--csc-m, clamp(20px, 5vw, 80px))); width: var(--container-widget-width); max-width: none; margin-left: calc(var(--csc-m, clamp(20px, 5vw, 80px)) * -1); }
@media (max-width: 760px) {
  .elementor.elementor .e-con > .elementor-widget.csc-bleed-start { --container-widget-width: calc(100% + 2 * var(--csc-m, 20px)); margin-right: calc(var(--csc-m, 20px) * -1); }
  :is(.csc-group, .csc-detail) { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .elementor .elementor-widget.elementor-widget-csc-experience-catalog .csc-group > figure.csc-photo { margin: 0 calc(var(--csc-m, 20px) * -1); width: calc(100% + 2 * var(--csc-m, 20px)); max-height: none; }
  :is(.csc-entries, .csc-related-list) { grid-template-columns: minmax(0, 1fr); }
  :is(.csc-entries) { gap: 0; }
  :is(.csc-related-list) { gap: 40px; }
  :is(.csc-group .csc-photo, .csc-detail > .csc-photo) { aspect-ratio: 3 / 2; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.csc-related .csc-photo img, .csc-card-link, .csc-entries .csc-card-link::before, .csc-request) { transition: none; }
  :is(.csc-related .csc-card-link:hover img) { transform: none; }
}
