/* ==========================================================================
   Inner pages v2 (QA 29.9): light hero, answer box, chips, reading column, pull quote,
   mid page CTA, image break, compact mobile grids, swipe rows, legal TOC, form steps.
   Loads everywhere (editor included) right after base.css.
   ========================================================================== */
/* light inner hero */
.ck-hero-in .ck-crumbs-row { width: 100%; }
.ck-crumbs-row .ckm-crumbs { color: var(--ck-muted); opacity: 1; font-size: 13.5px; }
.ck-crumbs-row .ckm-crumbs span[aria-current] { color: var(--ck-dark); }
.ck-hero-in .ck-hero-lead { max-width: 600px; }
.ck-hero-in .ck-hero-pic { position: relative; }
.ck-hero-in .ck-hero-pic img { position: relative; z-index: 1; display: block; width: 100%; aspect-ratio: 4 / 5; max-height: 560px; object-fit: cover; border-radius: 999px 999px 24px 24px; }
.ck-hero-in .ck-hero-pic::before { content: ""; position: absolute; inset: 0; border: 1px solid var(--ck-gold); border-radius: 999px 999px 24px 24px; transform: translate(-18px, 18px); pointer-events: none; }
@media (max-width: 1024px) { .ck-hero-in .ck-hero-pic img { max-height: 460px; } }
@media (max-width: 767px) {
  .ck-hero-in .ck-hero-pic img { aspect-ratio: 4 / 3; max-height: 300px; border-radius: 200px 200px 18px 18px; }
  .ck-hero-in .ck-hero-pic::before { display: none; }
  .ck-hero-in .ck-kicker .elementor-heading-title { font-size: 12px; }
}
/* anchors land below the fixed header */
.e-con[id], .ck-legal h2[id] { scroll-margin-top: 110px; }

/* short answer + jump chips */
.ck-answer { max-width: 860px; box-shadow: var(--ck-shadow); }
.ck-chips-wrap, .ck-chips { width: 100%; }
.ck-chips .elementor-icon-list-icon { display: none !important; }
.ck-chips .elementor-icon-list-items { display: flex !important; flex-wrap: wrap; gap: 8px; margin: 0 !important; }
.ck-chips .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.ck-chips .elementor-icon-list-item::after { display: none !important; }
.ck-chips .elementor-icon-list-item > a { display: inline-flex; align-items: center; padding: 9px 16px; border: 1px solid var(--ck-sand); border-radius: 99px; background: var(--ck-white); transition: background .3s, color .3s, border-color .3s; }
.ck-chips .elementor-icon-list-item > a:hover { background: var(--ck-dark); border-color: var(--ck-dark); }
.ck-chips .elementor-icon-list-item > a:hover .elementor-icon-list-text { color: var(--ck-cream) !important; }
.ck-chips .elementor-icon-list-text { padding: 0 !important; }
@media (max-width: 767px) {
  .ck-chips .elementor-icon-list-items { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; margin-inline: -20px !important; padding: 0 20px 4px; }
  .ck-chips .elementor-icon-list-items::-webkit-scrollbar { display: none; }
  .ck-chips .elementor-icon-list-item { flex: none; }
  .ck-chips .elementor-icon-list-item > a { white-space: nowrap; }
}

/* reading column: body text stays right aligned */
.ck-narrow .elementor-widget-text-editor, .ck-legal { text-align: start; }

/* mid page CTA */
.ck-midcta { box-shadow: var(--ck-shadow); }
@media (min-width: 768px) { .ck-midcta { flex-wrap: nowrap !important; } .ck-midcta > .elementor-widget-heading { flex: 1 1 auto; width: auto !important; min-width: 0; } .ck-midcta > .e-con { width: auto !important; flex: 0 0 auto !important; } }
@media (max-width: 767px) { .ck-midcta { align-items: stretch !important; } .ck-midcta > .e-con { justify-content: center; } }

/* pull quote + handwritten signature */
.ck-pq .elementor-heading-title::before { content: ""; display: block; width: 44px; height: 1px; margin: 0 auto 28px; background: var(--ck-gold2); }
.ck-sign .elementor-heading-title { display: inline-block; font-family: "Dana Yad", var(--ck-head); font-size: 50px; line-height: 1; transform: rotate(-5deg); color: var(--ck-gold2); }
@media (max-width: 767px) { .ck-sign .elementor-heading-title { font-size: 40px; } }

/* full width image break */
.ck-imgbreak .ck-imgbreak-cap .elementor-heading-title { letter-spacing: .2em; text-transform: uppercase; }

/* compact 2 column grids on mobile (included items, values) */
.ck-inc-grid .elementor-icon-box-icon { margin-bottom: 18px !important; }
@media (max-width: 767px) {
  .ck-inc-grid .elementor-icon-box-title, .ck-inc-grid .elementor-icon-box-title a { font-size: 18px !important; line-height: 1.3 !important; }
  .ck-inc-grid .elementor-icon-box-description { font-size: 14px !important; line-height: 1.65 !important; }
  .ck-inc-grid .elementor-icon { font-size: 17px !important; }
  .ck-inc-grid .elementor-icon-box-icon { margin-bottom: 12px !important; }
  .ck-inc-grid > .e-con:last-child:nth-child(odd) { grid-column: span 2; }
}

/* card rows swipe sideways on mobile; project block keeps one image */
@media (max-width: 767px) {
  .ck-swipe { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px !important; margin-inline: -16px; padding: 0 16px 8px; scrollbar-width: none; }
  .ck-swipe::-webkit-scrollbar { display: none; }
  .ck-swipe > .elementor-element { flex: 0 0 78% !important; width: 78% !important; scroll-snap-align: center; }
  .ck-proj-pics > .elementor-element:nth-child(2) { display: none; }
}

/* contact: quick actions on mobile */
.ck-quick > .elementor-widget-button { flex: 1 1 0; min-width: 0; }
.ck-quick .elementor-button { width: 100%; justify-content: center; padding: 14px 8px !important; }

/* form: chips as a 2 column grid on mobile, numbered step indicators */
@media (max-width: 767px) {
  .ck-form .elementor-field-type-radio .elementor-field-subgroup { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .ck-form .elementor-field-type-radio .elementor-field-option label { display: block; text-align: center; padding: 12px 8px; font-size: 14px; line-height: 1.35; height: 100%; }
}
.ck-form .e-form__indicators { display: flex; align-items: center; gap: 10px; flex-wrap: nowrap; }
.ck-form .e-form__indicators__indicator { flex-direction: row !important; align-items: center; gap: 10px; font-size: 14px; color: var(--ck-muted); flex: none; }
.ck-form .e-form__indicators__indicator__number { width: 34px !important; height: 34px !important; border-radius: 50% !important; border: 1px solid var(--ck-sand) !important; background: var(--ck-white) !important; color: var(--ck-text) !important; display: flex; align-items: center; justify-content: center; font-size: 14px; margin: 0 !important; }
.ck-form .e-form__indicators__indicator--state-active { color: var(--ck-dark); font-weight: 500; }
.ck-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__number { background: var(--ck-dark) !important; border-color: var(--ck-dark) !important; color: var(--ck-cream) !important; }
.ck-form .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__number { background: var(--ck-gold) !important; border-color: var(--ck-gold) !important; color: var(--ck-dark) !important; }
.ck-form .e-form__indicators__indicator__separator { flex: 1 1 auto; height: 1px; min-width: 14px; background: var(--ck-sand) !important; }
@media (max-width: 767px) { .ck-form .e-form__indicators__indicator:not(.e-form__indicators__indicator--state-active) .e-form__indicators__indicator__label { display: none; } }

/* portfolio filters scroll sideways on mobile; captions always visible on touch screens */
@media (max-width: 767px) {
  .ckm-gal__filters { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; margin: 0 -12px 22px; padding: 0 12px 4px; }
  .ckm-gal__filters::-webkit-scrollbar { display: none; }
  .ckm-gal__filters button { flex: none; white-space: nowrap; }
}
.ckm-gal__txt { display: block; }
@media (hover: none) {
  .ckm-gal__cap { transform: none; opacity: 1; padding: 34px 12px 10px; font-size: 12.5px; line-height: 1.4; }
  .ckm-gal__cap em { font-size: 10px; margin-bottom: 2px; }
  .ckm-gal__txt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
}

/* legal: table of contents */
.ck-toc { width: 100%; }
.ck-toc .elementor-icon-list-icon { display: none !important; }
.ck-toc .elementor-icon-list-item { padding: 0 !important; }
.ck-toc .elementor-icon-list-item > a { display: block; padding: 7px 0; border-bottom: 1px solid var(--ck-cream2); line-height: 1.45; }
.ck-toc .elementor-icon-list-item:last-child > a { border-bottom: 0; }
@media (min-width: 1025px) { .ck-toc-card { position: sticky; top: 110px; } }
.ck-legal h2 { font-size: 30px; }
@media (max-width: 767px) { .ck-legal h2 { font-size: 25px; } }

/* stats row of three */
@media (max-width: 767px) {
  .ck-stats3 .elementor-counter-number-wrapper { font-size: 38px !important; }
  .ck-stats3 .elementor-counter-title { font-size: 12.5px !important; line-height: 1.4; }
}

/* skip link + clear focus states */
.ckm-skip { position: fixed; top: 12px; inset-inline-start: 12px; z-index: 100000; background: var(--ck-dark); color: var(--ck-cream) !important; padding: 12px 20px; border-radius: 99px; font-size: 15px; text-decoration: none; transform: translateY(-160%); transition: transform .3s; }
.ckm-skip:focus { transform: none; outline: 2px solid var(--ck-gold); outline-offset: 2px; }
.elementor-button:focus-visible { outline: 2px solid var(--ck-gold2); outline-offset: 3px; }
.ck-grain a:focus-visible, .elementor-location-footer a:focus-visible, .ck-grain .elementor-button:focus-visible { outline-color: var(--ck-gold); }
.ck-srow:focus-visible, .ck-tile:focus-visible { outline: 2px solid var(--ck-gold2); outline-offset: 4px; }

/* the cookie button disappears once a choice is made (the footer link reopens the settings) */
#ckc.ckc.ckc-decided .ckc-fab { display: none !important; }

/* handwriting font for the signature */
@font-face { font-family: "Dana Yad"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/danayad.woff2) format("woff2"), url(../fonts/danayad.woff) format("woff"); }

/* mobile: the footer carries the space under it for the bottom bar (no cream strip below the dark footer) */
@media (max-width: 767px) {
  body { padding-bottom: 0 !important; }
  .elementor-location-footer { background: var(--ck-dark); padding-bottom: calc(92px + env(safe-area-inset-bottom)); }
}

/* legal TOC folds on mobile (same behaviour as the footer columns) */
@media (max-width: 767px) {
  .ck-toc-card.ck-fcol { border-bottom: 0; padding-bottom: 20px !important; }
  .ck-toc-card .ck-fcol-h .elementor-heading-title { font-size: 15px; color: var(--ck-dark); }
}
