/* Caroline K Core — base styles for plugin components. The theme's global styles refine them. */
.ckc-acc, .ckc-acc *, .ckc-form, .ckc-form *, .ckc-bundle, .ckc-bundle * { box-sizing: border-box; }

/* Accordion */
.ckc-acc { border-top: 1px solid var(--ck-line, rgba(5,5,5,.12)); }
.ckc-acc__item { border-bottom: 1px solid var(--ck-line, rgba(5,5,5,.12)); }
.ckc-acc__title { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 0; font-weight: 600; font-size: 1.05rem; }
.ckc-acc__title::-webkit-details-marker { display: none; }
.ckc-acc__title i { position: relative; width: 14px; height: 14px; flex: none; }
.ckc-acc__title i::before, .ckc-acc__title i::after { content: ""; position: absolute; inset: 6px 0 auto; height: 2px; background: currentColor; transition: transform .3s ease; }
.ckc-acc__title i::after { transform: rotate(90deg); }
.ckc-acc__item[open] .ckc-acc__title i::after { transform: rotate(0); }
.ckc-acc__body { padding: 0 0 22px; line-height: 1.7; color: var(--ck-text, rgba(5,5,5,.78)); }
.ckc-acc__body > :first-child { margin-top: 0; }
.ckc-acc__body img { border-radius: 10px; }

/* Videos */
.ckc-videos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 16px; }
.ckc-video { margin: 0; border-radius: 18px; overflow: hidden; background: #050505; aspect-ratio: 9 / 16; }
.ckc-video video { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Badge */
.ckc-badge { position: absolute; top: 12px; left: 12px; z-index: 2; padding: 6px 12px; border-radius: 999px; background: #050505; color: #fff; font-size: .75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }

/* Bundle */
.ckc-bundle { margin: 28px 0; padding: 24px; border-radius: 22px; background: var(--ck-off, #f7f7f5); }
.ckc-bundle__title { margin: 0 0 14px; font-size: 1.1rem; }
.ckc-bundle__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ckc-bundle__item { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 12px; border-radius: 14px; background: #fff; }
.ckc-bundle__item a { display: flex; align-items: center; gap: 14px; min-width: 0; color: inherit; text-decoration: none; }
.ckc-bundle__item img { width: 56px; height: 56px; object-fit: cover; border-radius: 10px; flex: none; }
.ckc-bundle__name { font-weight: 500; }
.ckc-bundle__price { white-space: nowrap; color: var(--ck-muted, rgba(5,5,5,.64)); }
.ckc-bundle__save { margin: 14px 0 0; }

/* Contact form */
.ckc-form { max-width: 100%; }
.ckc-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.ckc-field { margin: 0 0 18px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ckc-field label { font-weight: 600; font-size: .95rem; }
.ckc-opt { font-weight: 400; color: var(--ck-muted, rgba(5,5,5,.64)); }
.ckc-field input, .ckc-field select, .ckc-field textarea { width: 100%; max-width: 100%; min-height: 54px; padding: 14px 18px; border: 1px solid #8d8a85; border-radius: 14px; background: #fff; font: inherit; color: inherit; }
.ckc-field textarea { min-height: 140px; resize: vertical; }
.ckc-field input:focus-visible, .ckc-field select:focus-visible, .ckc-field textarea:focus-visible, .ckc-check input:focus-visible { outline: 2px solid #050505; outline-offset: 2px; }
.ckc-field [aria-invalid="true"] { border-color: #b3261e; }
.ckc-err { color: #b3261e; font-size: .875rem; }
.ckc-err:empty { display: none; }
.ckc-check { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; align-items: start; margin: 4px 0 22px; font-size: .95rem; }
.ckc-check input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: #050505; }
.ckc-check .ckc-err { grid-column: 2; }
.ckc-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ckc-btn { width: 100%; min-height: 56px; border: 0; border-radius: 999px; background: #050505; color: #fff; font: inherit; font-weight: 600; cursor: pointer; transition: opacity .2s; }
.ckc-btn:hover { opacity: .86; }
.ckc-btn:disabled { opacity: .5; cursor: wait; }
.ckc-form__status { margin: 12px 0 0; min-height: 1.4em; }
.ckc-form__done { padding: 28px; border-radius: 18px; background: var(--ck-off, #f7f7f5); }
.ckc-form__done:focus { outline: none; }
@media (max-width: 640px) { .ckc-form__grid { grid-template-columns: minmax(0, 1fr); } }
