/* Component styles — consumed by the React primitives in components/ */

/* Seal */
.cc-seal{display:inline-block;position:relative;flex:none}
.cc-seal svg{display:block;width:100%;height:100%;overflow:visible}
.cc-seal .cc-seal__mask path{fill:none;stroke:#fff;stroke-width:84;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.cc-seal.is-drawing .cc-seal__loop{animation:cc-draw 1150ms var(--ease-ink) forwards}
.cc-seal.is-drawing .cc-seal__tail{animation:cc-draw 450ms var(--ease-ink) 1150ms forwards}
.cc-seal.is-static .cc-seal__mask path{stroke-dashoffset:0}
@media (prefers-reduced-motion:reduce){.cc-seal .cc-seal__mask path{stroke-dashoffset:0;animation:none!important}}

/* Logo lockup */
.cc-logo{display:inline-flex;align-items:center;gap:14px;color:var(--cc-ink);text-decoration:none}
.cc-logo--stacked{flex-direction:column;gap:20px}
.cc-logo__name{font-family:var(--font-body);font-weight:400;text-transform:uppercase;letter-spacing:var(--tracking-wordmark);white-space:nowrap;line-height:1}

/* Button */
.cc-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:14px;overflow:hidden;isolation:isolate;border:1px solid var(--cc-ink);background:transparent;color:var(--cc-ink);font-family:var(--font-body);font-weight:400;font-size:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;line-height:1;padding:19px 34px 18px;border-radius:var(--radius-1);cursor:pointer;text-decoration:none;white-space:nowrap;transition:color var(--dur-fast) var(--ease-ink),transform var(--dur-base) var(--ease-ink);will-change:transform}
.cc-btn::before{content:"";position:absolute;inset:0;background:var(--cc-ink);transform:scaleX(0);transform-origin:left center;transition:transform var(--dur-base) var(--ease-ink);z-index:-1}
.cc-btn:hover,.cc-btn:focus-visible{color:var(--cc-paper)}
.cc-btn:hover::before,.cc-btn:focus-visible::before{transform:scaleX(1)}
.cc-btn--solid{color:var(--cc-paper);background:var(--cc-ink)}
.cc-btn--solid::before{background:var(--cc-charcoal)}
.cc-btn--solid:hover{color:var(--cc-paper)}
.cc-btn--paper{color:var(--cc-paper);border-color:var(--cc-paper)}
.cc-btn--paper::before{background:var(--cc-paper)}
.cc-btn--paper:hover,.cc-btn--paper:focus-visible{color:var(--cc-ink)}
.cc-btn--lg{padding:23px 44px 22px;font-size:var(--type-label-lg)}
.cc-btn--sm{padding:14px 22px 13px;font-size:11px}
.cc-btn[disabled],.cc-btn[aria-disabled="true"]{opacity:.4;pointer-events:none}
.cc-btn__arrow{display:inline-block;transition:transform var(--dur-base) var(--ease-ink);font-weight:300;letter-spacing:0}
.cc-btn:hover .cc-btn__arrow{transform:translateX(5px)}

/* Text link — hand-drawn underline */
.cc-link{position:relative;display:inline-block;color:inherit;text-decoration:none;padding-bottom:6px;cursor:pointer}
.cc-link__line{position:absolute;left:-2%;bottom:-2px;width:104%;height:9px;overflow:visible;pointer-events:none}
.cc-link__line path{fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;opacity:.55;transition:opacity var(--dur-fast) var(--ease-ink)}
.cc-link:hover .cc-link__line path,.cc-link:focus-visible .cc-link__line path{opacity:1;animation:cc-draw var(--dur-slow) var(--ease-ink)}
.cc-link--label{white-space:nowrap;font-family:var(--font-body);font-weight:400;font-size:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase}

/* Card — image unmask */
.cc-card{display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--rule);border-radius:var(--radius-1);color:var(--text-body);text-decoration:none;overflow:hidden}
.cc-card__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--cc-kraft)}
.cc-card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:inset(9% 9% 9% 9%);transform:scale(1.08);filter:saturate(.82) sepia(.08);transition:clip-path var(--dur-slow) var(--ease-ink),transform var(--dur-slow) var(--ease-ink)}
.cc-card:hover .cc-card__img,.cc-card:focus-visible .cc-card__img{clip-path:inset(0 0 0 0);transform:scale(1)}
.cc-card__body{display:flex;flex-direction:column;gap:12px;padding:28px 28px 32px}
.cc-card__eyebrow{color:var(--text-muted)}
.cc-card__title{font-family:var(--font-display);font-weight:300;font-size:var(--type-h3);line-height:1.1;color:var(--text-display)}
.cc-card__text{font-size:16px;line-height:1.65}

/* Tag — kraft hang tag */
.cc-tag{white-space:nowrap;display:inline-flex;align-items:center;gap:10px;background:var(--surface-tag);color:var(--cc-ink);font-family:var(--font-body);font-weight:400;font-size:11px;letter-spacing:var(--tracking-label);text-transform:uppercase;line-height:1;padding:8px 14px 7px 22px;clip-path:polygon(8px 0,100% 0,100% 100%,8px 100%,0 50%);position:relative}
.cc-tag::before{content:"";position:absolute;left:9px;top:50%;width:4px;height:4px;margin-top:-2px;border-radius:50%;background:var(--surface-page)}
.cc-tag--outline{background:transparent;box-shadow:inset 0 0 0 1px var(--rule);clip-path:none;padding:8px 14px 7px}
.cc-tag--outline::before{display:none}
.cc-tag--ink{background:var(--cc-ink);color:var(--cc-paper)}

/* Field — underline only */
.cc-field{display:flex;flex-direction:column;gap:10px;position:relative}
.cc-field__label{color:var(--text-muted)}
.cc-field__control{position:relative}
.cc-field__input{width:100%;appearance:none;-webkit-appearance:none;border:0;border-bottom:1px solid var(--field-line);border-radius:0;background:transparent;font-family:var(--font-body);font-weight:300;font-size:var(--type-body);line-height:1.5;color:var(--text-body);padding:8px 0 12px;outline:none}
.cc-field__input::placeholder{color:var(--text-muted);opacity:.6}
textarea.cc-field__input{resize:vertical;min-height:110px}
select.cc-field__input{cursor:pointer;padding-right:28px;background-image:linear-gradient(45deg,transparent 50%,var(--cc-ink) 50%,var(--cc-ink) calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(-45deg,transparent 50%,var(--cc-ink) 50%,var(--cc-ink) calc(50% + 1px),transparent calc(50% + 1px));background-size:6px 6px,6px 6px;background-position:calc(100% - 9px) 50%,calc(100% - 3px) 50%;background-repeat:no-repeat}
.cc-field__control::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--field-line-focus);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-base) var(--ease-ink)}
.cc-field__control:focus-within::after{transform:scaleX(1)}
.cc-field__hint{font-size:14px;color:var(--text-muted)}
.cc-field.is-error .cc-field__input{border-bottom-color:var(--status-error)}
.cc-field.is-error .cc-field__hint{color:var(--status-error)}
.cc-field.is-disabled{opacity:.45}

/* Accordion */
.cc-acc{border-top:1px solid var(--rule)}
.cc-acc__item{border-bottom:1px solid var(--rule)}
.cc-acc__trigger{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;padding:28px 0;cursor:pointer;font-family:var(--font-display);font-weight:300;font-size:28px;line-height:1.2;color:var(--text-display)}
.cc-acc__trigger:focus-visible{outline:1px solid var(--focus-ring);outline-offset:4px}
.cc-acc__plus{position:relative;flex:none;width:22px;height:22px}
.cc-acc__plus::before,.cc-acc__plus::after{content:"";position:absolute;left:50%;top:50%;background:currentColor;transition:transform var(--dur-base) var(--ease-ink)}
.cc-acc__plus::before{width:22px;height:1px;margin:-.5px 0 0 -11px}
.cc-acc__plus::after{width:1px;height:22px;margin:-11px 0 0 -.5px}
.cc-acc__item.is-open .cc-acc__plus::after{transform:rotate(90deg)}
.cc-acc__item.is-open .cc-acc__plus::before{transform:rotate(180deg)}
.cc-acc__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-base) var(--ease-ink)}
.cc-acc__item.is-open .cc-acc__panel{grid-template-rows:1fr}
.cc-acc__inner{overflow:hidden}
.cc-acc__content{padding:0 0 32px;max-width:var(--measure);opacity:0;transition:opacity var(--dur-fast) var(--ease-ink)}
.cc-acc__item.is-open .cc-acc__content{opacity:1}

/* Headline — line-by-line reveal */
.cc-headline{margin:0;font-family:var(--font-display);font-weight:300;line-height:var(--leading-display);letter-spacing:var(--tracking-display);color:var(--text-display)}
.cc-headline em{font-style:italic}
.cc-headline__line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.cc-headline__inner{display:block;transform:translateY(105%)}
.cc-headline.is-in .cc-headline__inner{animation:cc-rise var(--dur-slow) var(--ease-ink) forwards}
.cc-headline.is-static .cc-headline__inner{transform:none}
@media (prefers-reduced-motion:reduce){.cc-headline__inner{transform:none!important;animation:none!important}}

/* Stat */
.cc-stat{display:flex;flex-direction:column;gap:10px}
.cc-stat__value{font-family:var(--font-display);font-weight:300;font-size:var(--type-display-md);line-height:.9;color:var(--text-accent-display);letter-spacing:-.02em}
.cc-stat__value em{font-style:italic}
.cc-stat__label{color:var(--text-body)}
.cc-dark .cc-stat__label{color:var(--text-on-dark)}

/* Rule */
.cc-rule{border:0;border-top:1px solid var(--rule);margin:0;width:100%}
.cc-rule--double{border-top:1px solid var(--rule);height:4px;border-bottom:1px solid var(--rule)}
.cc-rule--dark{border-color:var(--rule-on-dark)}
.cc-rule-label{display:flex;align-items:center;gap:20px;color:var(--text-muted)}
.cc-rule-label::before,.cc-rule-label::after{content:"";flex:1;border-top:1px solid var(--rule)}
