.ccsoc-card{max-width:760px;margin:2rem auto;padding:clamp(1.2rem,4vw,2.5rem);border:1px solid #d9d4cb;background:#fffefa;color:#292723;font-family:inherit;line-height:1.65}.ccsoc-card h2{margin:0;font-family:Georgia,serif;font-size:clamp(1.6rem,3vw,2.2rem)}.ccsoc-card h3{font-family:Georgia,serif;font-size:1.35rem;margin:1.5em 0 .6em}.ccsoc-card h4{margin:1rem 0 .4rem}.ccsoc-card section+section{border-top:1px solid #e5e1da;margin-top:1.5rem}.ccsoc-card-number{font-size:.82rem;letter-spacing:.06em}.ccsoc-card-details{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}.ccsoc-serving{display:block;margin:1rem 0}.ccsoc-serving-input{width:5rem;margin-left:.5rem}.ccsoc-card ul,.ccsoc-card ol{padding-left:1.6rem}.ccsoc-card li{margin:.45rem 0}.ccsoc-card li input[type=checkbox]:checked~span{text-decoration:line-through;opacity:.6}.ccsoc-metric{color:#666;white-space:nowrap}.ccsoc-card video,.ccsoc-card img{max-width:100%;height:auto;display:block;margin:1rem 0}.ccsoc-nutrition>div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #e5e1da;padding:.3rem 0}.ccsoc-nutrition small{font-size:.75em;font-weight:normal}.ccsoc-disclaimer{font-size:.82rem;color:#605d59;margin-top:1rem}.ccsoc-block-editor{border:1px solid #ddd;padding:1rem}.ccsoc-block-search{display:flex;gap:.5rem}.ccsoc-block-preview{max-height:600px;overflow:auto;border-top:1px solid #ddd;margin-top:1rem}@media print{.ccsoc-card{border:0;max-width:none;padding:0}.ccsoc-serving{display:none}.ccsoc-card section{break-inside:avoid}}

.ccsoc-card{background:#fff!important}.ccsoc-card-header{display:flex;gap:1.5rem;align-items:flex-start;justify-content:space-between}.ccsoc-card-header-copy{flex:1;min-width:0}.ccsoc-hero{width:180px;flex:0 0 180px}.ccsoc-card .ccsoc-hero-image{width:100%;aspect-ratio:4/3;object-fit:cover;margin:0}.ccsoc-card-actions{display:flex;gap:1rem;flex-wrap:wrap;margin:.8rem 0 1.2rem}.ccsoc-card .ccsoc-action{display:inline-flex;align-items:center;gap:.35rem;background:transparent;border:0;padding:.25rem;color:inherit;font:inherit;cursor:pointer}.ccsoc-action svg{height:17px;width:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ccsoc-action:hover{text-decoration:underline}.ccsoc-action:focus-visible{outline:2px solid currentColor;outline-offset:3px}.ccsoc-serving-hint{font-size:.83rem;color:#666;margin-left:.5rem}.ccsoc-card .ccsoc-ingredients{list-style:none!important;padding-left:0!important}.ccsoc-card .ccsoc-ingredients li::marker{content:''}.ccsoc-card .ccsoc-ingredients label{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}.ccsoc-card .ccsoc-ingredients li:has(input:checked) label,.ccsoc-card ol li:has(.ccsoc-step-check input:checked) .ccsoc-step-check span{text-decoration:line-through;opacity:.65}.ccsoc-card ol .ccsoc-step-check{display:inline-flex;align-items:baseline;gap:.55rem}.ccsoc-card ol .ccsoc-step-check input{flex-shrink:0}.ccsoc-card ol{list-style-type:decimal}.ccsoc-rl-hero-preview{max-width:240px;height:auto}@media(max-width:560px){.ccsoc-card-header{flex-direction:column}.ccsoc-hero{width:150px;flex-basis:auto}.ccsoc-card-actions{gap:.8rem}}@media print{.ccsoc-card-actions,.ccsoc-serving-hint,.ccsoc-card input[type=checkbox]{display:none!important}.ccsoc-card{background:#fff!important}}

/* v1.5 refinements */
.ccsoc-card{background:#FFFFFF!important;font-size:calc(1rem + 1px)}
.ccsoc-card h2,.ccsoc-card h3,.ccsoc-card .ccsoc-eyebrow{color:#477B7A}
.ccsoc-card .ccsoc-eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.13em;margin:0 0 .45rem}
.ccsoc-card .ccsoc-action{font-weight:700}.ccsoc-card .ccsoc-action svg{color:#477B7A}
.ccsoc-card .ccsoc-hero{width:min(40%,300px);flex:0 0 min(40%,300px)}
.ccsoc-card .ccsoc-hero-image{width:100%;height:225px;object-fit:cover;object-position:center}
.ccsoc-card .ccsoc-ingredient-note{color:#666;font-style:normal}
.ccsoc-card .ccsoc-steps{list-style:none!important;padding-left:0!important}
.ccsoc-card .ccsoc-steps li::marker{content:''}
.ccsoc-card .ccsoc-completed .ccsoc-item-content,.ccsoc-card .ccsoc-completed .ccsoc-step-text{text-decoration:line-through;opacity:.65}
.ccsoc-card .ccsoc-ingredients li:has(input:checked) label{ text-decoration:none; opacity:1 }
.ccsoc-card .ccsoc-steps li:has(input:checked) .ccsoc-step-check span{text-decoration:line-through}
.ccsoc-card .ccsoc-actions-bottom{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:2rem}
.ccsoc-card .ccsoc-actions-bottom .ccsoc-action{justify-content:center;min-height:46px;border:1px solid #477B7A;padding:10px 8px;color:#292723}
.ccsoc-card .ccsoc-rating-summary{color:#292723;font-size:.88rem;margin:0 0 1rem}
.ccsoc-card .ccsoc-rating-summary>span{color:#477B7A;font-size:1.1rem;letter-spacing:.06em}
.ccsoc-card .ccsoc-rating-panel{padding:1rem;border:1px solid #ccc;margin-top:1rem}
.ccsoc-card .ccsoc-rating-panel[hidden]{display:none}
.ccsoc-card .ccsoc-rating-options{display:flex;gap:1rem;flex-wrap:wrap;margin:.7rem 0}
.ccsoc-card a{color:#355e63;text-decoration:underline}
@media(max-width:560px){.ccsoc-card .ccsoc-hero{width:100%;flex:auto}.ccsoc-card .ccsoc-hero-image{height:225px}.ccsoc-card .ccsoc-actions-bottom{gap:5px}.ccsoc-card .ccsoc-actions-bottom .ccsoc-action{padding:8px 3px;font-size:.8rem}}
@media print{.ccsoc-card .ccsoc-rating-panel,.ccsoc-card .ccsoc-rating-summary{display:none!important}}

/* v1.6: logo, precise hierarchy, aligned completion controls and accessible bottom actions */
.ccsoc-card .ccsoc-brand{margin:0 0 .6rem;max-width:210px}
.ccsoc-card .ccsoc-brand-logo{display:block;width:auto;max-width:100%;max-height:65px;height:auto;object-fit:contain;filter:none;margin:0}
.ccsoc-card .ccsoc-rating-summary{display:flex;align-items:center;gap:.45rem;margin:.65rem 0 .7rem}
.ccsoc-card .ccsoc-rating-summary>span{color:#477B7A;letter-spacing:.055em}
.ccsoc-card .ccsoc-actions-bottom{margin-top:1.5rem}
.ccsoc-card .ccsoc-actions-bottom .ccsoc-action{background:#fff;border:2px solid #477B7A;transition:background-color .18s ease,box-shadow .18s ease,transform .18s ease;text-decoration:none}
.ccsoc-card .ccsoc-actions-bottom .ccsoc-action:hover{background:#eff7f6;box-shadow:0 2px 7px #00000016;transform:translateY(-1px);text-decoration:none}
.ccsoc-card .ccsoc-actions-bottom .ccsoc-action:focus-visible{outline:3px solid #234b4b;outline-offset:3px}
.ccsoc-card .ccsoc-actions-bottom .ccsoc-action svg{flex:none}
.ccsoc-card .ccsoc-steps,.ccsoc-card .ccsoc-ingredients{padding-left:0!important;list-style:none!important}
.ccsoc-card .ccsoc-steps label.ccsoc-step-check,.ccsoc-card .ccsoc-ingredients li>label{display:flex;align-items:flex-start;flex-wrap:nowrap;gap:.55rem;line-height:1.65}
.ccsoc-card .ccsoc-steps label.ccsoc-step-check input[type=checkbox],.ccsoc-card .ccsoc-ingredients li>label input[type=checkbox]{flex:0 0 17px;width:17px;height:17px;margin:5px 0 0;vertical-align:top}
.ccsoc-card .ccsoc-steps .ccsoc-step-text,.ccsoc-card .ccsoc-ingredients .ccsoc-item-content{flex:1;min-width:0}
.ccsoc-card .ccsoc-steps li{padding-left:0;margin-left:0}
@media(prefers-reduced-motion:reduce){.ccsoc-card .ccsoc-actions-bottom .ccsoc-action{transition:none}.ccsoc-card .ccsoc-actions-bottom .ccsoc-action:hover{transform:none}}

/* v1.6.1: logo-free black text eyebrow. Keep website font family and accent elsewhere. */
.ccsoc-card .ccsoc-eyebrow{color:#000000!important;font-family:inherit;font-size:.72rem;font-weight:300;letter-spacing:.13em;line-height:1.45;text-transform:uppercase;text-align:left;margin:0 0 .7rem;}

/* Version 1.7: editorial type, measurements and black rating stars. */
.ccsoc-card .ccsoc-eyebrow{color:#000!important;font-weight:300!important}
.ccsoc-card h2{color:#000!important}
.ccsoc-card .ccsoc-measure,.ccsoc-card .ccsoc-metric{color:#000!important}
.ccsoc-card .ccsoc-ingredient-note{color:#666!important}
.ccsoc-card .ccsoc-rating-summary>span,.ccsoc-card .ccsoc-rating-options{color:#000!important}
.ccsoc-card .ccsoc-rating-options{display:flex;gap:0;align-items:center}
.ccsoc-card .ccsoc-star-choice{position:relative;cursor:pointer;display:inline-flex;padding:0 3px}
.ccsoc-card .ccsoc-star-choice input{position:absolute;opacity:0;width:1px;height:1px}
.ccsoc-card .ccsoc-star-choice span{font-size:30px;line-height:1.3;display:block;color:#000}
.ccsoc-card .ccsoc-star-choice.is-filled span{font-weight:normal}
.ccsoc-card .ccsoc-star-choice input:focus-visible+span{outline:2px solid #477B7A;outline-offset:3px;border-radius:2px}

/* v1.7.1: Keep explicit instruction paragraph structure and icon-note alignment. */
.ccsoc-card .ccsoc-header-rule{width:65px;height:1px;background:#333;margin:.3rem 0 1rem}
.ccsoc-card .ccsoc-step-text{display:block;white-space:pre-line}
.ccsoc-card .ccsoc-step-text p,.ccsoc-card .ccsoc-step-note-content p{margin:0 0 .8em;white-space:pre-line}
.ccsoc-card .ccsoc-step-text p:last-child,.ccsoc-card .ccsoc-step-note-content p:last-child{margin-bottom:0}
.ccsoc-card .ccsoc-step-text br,.ccsoc-card .ccsoc-step-note-content br{display:inline}
.ccsoc-card .ccsoc-step-note{display:grid;grid-template-columns:19px minmax(0,1fr);column-gap:10px;align-items:start;margin:.55rem 0 1rem 27px}
.ccsoc-card .ccsoc-step-note-icon{display:block;width:19px;height:19px;color:#A17937;line-height:1}
.ccsoc-card .ccsoc-step-note-icon svg{width:100%;height:100%}
.ccsoc-card .ccsoc-step-note-content{min-width:0;color:#666;white-space:pre-line;line-height:1.6}
@media print{.ccsoc-card .ccsoc-step-note-icon{color:#A17937}}

/* Public recipe-card copying deterrents. Print output is intentionally unrestricted. */
@media screen {
  .ccsoc-card, .ccsoc-card *:not(input):not(textarea) {
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
  }
  .ccsoc-card img {
    -webkit-user-drag: none;
    user-drag: none;
    pointer-events: none;
  }
  .ccsoc-card button, .ccsoc-card a, .ccsoc-card label, .ccsoc-card input,
  .ccsoc-card .ccsoc-rating-options { -webkit-touch-callout: default; }
}
@media print {
  .ccsoc-card, .ccsoc-card * { -webkit-user-select: text !important; user-select: text !important; }
}

/* 1.8.0 instruction alignment, group styles and description */

.ccsoc-card .ccsoc-steps{margin:0;padding:0;list-style:none}
.ccsoc-card .ccsoc-step{margin:0 0 1.1rem;padding:0;min-width:0}
.ccsoc-card .ccsoc-step-check{display:grid;grid-template-columns:20px 2.1em minmax(0,1fr);align-items:baseline;gap:8px;width:100%}
.ccsoc-card .ccsoc-step-check input{grid-column:1;margin:0;align-self:baseline}
.ccsoc-card .ccsoc-step-number{grid-column:2;white-space:nowrap}
.ccsoc-card .ccsoc-step-text{grid-column:3;min-width:0}
.ccsoc-card .ccsoc-step-note{margin:.55rem 0 .8rem calc(20px + 2.1em + 16px)}
.ccsoc-card .ccsoc-group-heading{margin:1.3rem 0 .75rem}
.ccsoc-card .ccsoc-heading-bold,.ccsoc-card .ccsoc-heading-bold-italic{font-weight:700}
.ccsoc-card .ccsoc-heading-italic,.ccsoc-card .ccsoc-heading-bold-italic{font-style:italic}
@media print{.ccsoc-card svg,.ccsoc-card .ccsoc-step-note-icon,.ccsoc-card input[type=checkbox]{display:none!important}.ccsoc-card .ccsoc-step-check{grid-template-columns:2.1em minmax(0,1fr)}.ccsoc-card .ccsoc-step-number{grid-column:1}.ccsoc-card .ccsoc-step-text{grid-column:2}.ccsoc-card .ccsoc-step-note{margin-left:2.1em}}

/* 1.8.1: consistent spacing, including instructions containing notes. */
.ccsoc-card .ccsoc-step{margin:0 0 1rem!important}
.ccsoc-card .ccsoc-step-note{margin-top:.35rem!important;margin-bottom:.45rem!important}
.ccsoc-card .ccsoc-group-heading{margin:1.1rem 0 .65rem}

/* 1.8.6: explicit title visibility when a recipe description / DEK is present. */
.ccsoc-card .ccsoc-card-header-copy .ccsoc-recipe-title{display:block;visibility:visible;opacity:1;position:static;height:auto;overflow:visible;margin:0;color:#000!important}
.ccsoc-block-results{margin:.6rem 0;padding:0;list-style:none;max-height:230px;overflow-y:auto;border:1px solid #ddd;background:#fff}
.ccsoc-block-results li{margin:0;border-bottom:1px solid #eee}
.ccsoc-block-results li button{display:block;width:100%;text-align:left;padding:.55rem .7rem;cursor:pointer}
.ccsoc-block-results li button:hover,.ccsoc-block-results li button:focus{background:#f5f5f5}

/* v1.9.0: clip zoomed images to the card image frame; fit mode uses neutral backing. */
.ccsoc-card .ccsoc-hero{overflow:hidden;background:#f1eee8}.ccsoc-card .ccsoc-hero-image{display:block;margin:0!important;max-width:none;height:225px;width:100%;aspect-ratio:4/3}

/* v1.9.2: use photo-dependent aspect ratio, without shrinking it inside a fixed frame */
.ccsoc-card .ccsoc-hero-image{height:auto;aspect-ratio:var(--ccsoc-hero-ratio,4/5);object-fit:cover;transform:none!important}

/* 1.9.4: Ingredient group headings default to bold on recipe cards. */
.ccsoc-card .ccsoc-ingredient-group-heading{font-weight:700!important}

/* v1.9.7: card alignment, larger desktop display, and full-height editor preview. */
.ccsoc-card{box-sizing:border-box;width:100%;max-width:960px;margin-top:2rem;margin-bottom:2rem;height:auto;max-height:none;overflow:visible}
.ccsoc-card--align-left{margin-left:0;margin-right:auto}
.ccsoc-card--align-center{margin-left:auto;margin-right:auto}
.ccsoc-card--align-right{margin-left:auto;margin-right:0}
/* Unlike search results, the recipe itself should never be a scrollable panel. */
.ccsoc-block-preview{height:auto;max-height:none;overflow:visible}
.ccsoc-block-preview .ccsoc-card{width:100%;max-width:960px}
.ccsoc-card-layout--left .ccsoc-card{margin-left:0;margin-right:auto}
.ccsoc-card-layout--center .ccsoc-card{margin-left:auto;margin-right:auto}
.ccsoc-card-layout--right .ccsoc-card{margin-left:auto;margin-right:0}
@media(max-width:767px){.ccsoc-card{width:100%;max-width:100%;margin-left:auto;margin-right:auto;padding:clamp(1rem,4vw,1.5rem)}.ccsoc-block-preview .ccsoc-card{max-width:100%}}
@media print{.ccsoc-card{width:100%;max-width:none;margin-left:0;margin-right:0}}

/* v1.9.9: fixed-size aggregate rating and cohesive header actions. */
.ccsoc-card .ccsoc-card-header-copy .ccsoc-rating-summary{display:flex;align-items:center;gap:.65rem;min-height:30px;margin:.8rem 0 .25rem;flex-wrap:wrap;color:#292723}
.ccsoc-card .ccsoc-rating-visual{display:inline-block;position:relative;width:5ch;height:1.45em;line-height:1.45;font-size:19px;letter-spacing:0;white-space:nowrap;flex:none;overflow:hidden;font-family:monospace}
.ccsoc-card .ccsoc-rating-empty,.ccsoc-card .ccsoc-rating-filled{position:absolute;top:0;left:0;display:block;height:100%;white-space:nowrap;font:inherit;line-height:inherit;letter-spacing:inherit;}
.ccsoc-card .ccsoc-rating-empty{color:#c7c7c7!important}.ccsoc-card .ccsoc-rating-filled{color:#404040!important;overflow:hidden}
.ccsoc-card .ccsoc-rating-label{font-size:.86rem;font-weight:400;color:#292723;letter-spacing:0}
.ccsoc-card .ccsoc-card-header-copy .ccsoc-actions-top{margin:.15rem 0 .9rem}
.ccsoc-card .ccsoc-actions-bottom{align-items:stretch;grid-template-columns:repeat(3,minmax(0,1fr))}
.ccsoc-recipe-comment-rating{margin:1rem 0;padding:0;border:0;min-width:0}
.ccsoc-recipe-comment-rating legend{padding:0;margin-bottom:.35rem;font-weight:600;font-size:.94rem}
.ccsoc-recipe-comment-stars{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}
.ccsoc-recipe-comment-stars label{display:inline-flex;align-items:center;gap:.15rem;cursor:pointer;position:relative}
.ccsoc-recipe-comment-stars input{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}
.ccsoc-recipe-comment-stars .ccsoc-comment-star{font-size:28px;line-height:1.2;color:#777}
.ccsoc-recipe-comment-stars label.is-filled .ccsoc-comment-star{color:#789247}
.ccsoc-recipe-comment-stars input:focus-visible+.ccsoc-comment-star{outline:2px solid #477B7A;outline-offset:2px}
.ccsoc-recipe-comment-rating .ccsoc-comment-rating-note{margin:.35rem 0 0;font-size:.85rem}
.ccsoc-comment-review-stars{display:block;margin:.6rem 0 .45rem;color:#789247;font-size:22px;letter-spacing:.06em;line-height:1.2}
@media(max-width:560px){.ccsoc-card .ccsoc-rating-visual{font-size:17px}.ccsoc-card .ccsoc-rating-label{font-size:.8rem}}
@media print{.ccsoc-recipe-comment-rating{display:none!important}}

/* Range serving adjustments: keyboard-operable controls with visible focus. */
.ccsoc-card .ccsoc-serving-down,.ccsoc-card .ccsoc-serving-up{display:inline-flex;align-items:center;justify-content:center;min-width:34px;min-height:34px;margin:0 .4rem;padding:0 .4rem;border:1px solid #777;background:#fff;color:#292723;border-radius:3px;font:inherit;cursor:pointer}.ccsoc-card .ccsoc-serving-down:focus-visible,.ccsoc-card .ccsoc-serving-up:focus-visible{outline:2px solid #292723;outline-offset:2px}.ccsoc-card .ccsoc-serving-down:disabled,.ccsoc-card .ccsoc-serving-up:disabled{opacity:.4;cursor:not-allowed}.ccsoc-card .ccsoc-serving-range{display:inline-block;min-width:4.3em;text-align:center;font-variant-numeric:tabular-nums}@media print{.ccsoc-card .ccsoc-serving-down,.ccsoc-card .ccsoc-serving-up{display:none!important}}
