/* MainChick - the coded 30%.
   Layout, spacing, widths, grid columns and responsive behaviour are Elementor
   container settings on page 25 and are edited in the UI - deliberately NOT here.
   What is left is only what Elementor cannot express:
     1. overrides for Elementor's own blanket widget defaults
     2. reaching inside widget markup we do not control
     3. decorative assets (stars, camera) and the accordion restyle */

/* 1. Elementor gives every widget position:relative, which would make the hero
      overlays resolve against their own wrapper instead of .mc2-shot. */
.mc2-shot > .elementor-widget{ position:static; }

/* Elementor ships .elementor.elementor .e-con > .elementor-widget{max-width:100%}
   (0,4,0). Match its shape to give the FAQ its narrow measure. */
.elementor.elementor .e-con > .elementor-widget.mc2-faq,
.elementor.elementor .e-con > .e-con-inner > .elementor-widget.mc2-faq{ max-width:760px; }

/* 2. Widgets that must fill a styled wrapper (Elementor injects .elementor-widget-container) */
.mc2-feed > .elementor-widget-container{ width:100%; height:100%; }
.mc2-feed > .elementor-widget-container > img{ width:100%; height:100%; object-fit:cover; display:block; }
.mc2-feed{ flex:0 0 250px; }

/* heading design classes sit on the widget wrapper, so reach the tag inside */
.mc2-h1 .elementor-heading-title{ font-size:clamp(38px,5vw,60px); line-height:.96; font-weight:600; margin:0 0 16px; }
.mc2-h2 .elementor-heading-title{ font-size:clamp(27px,3.6vw,38px); font-weight:600; margin:0; line-height:1.05; }

/* wpautop wraps text-editor content in <p>; display:contents keeps the marquee spans as flex items */
.mc2-marquee-track > p{ display:contents; }

/* stats band: numbers keep their intrinsic width, CTA pushes to the right edge */
.mc2-stat{ flex:0 0 auto; }
.mc2-statcta{ margin-left:auto; }
@media (max-width:620px){ .mc2-stat{ flex:1 1 40%; } .mc2-statcta{ margin-left:0; } }

/* Elementor's row control can only emit repeat(N, 1fr), which would force the two
   hero rows to equal height. Auto rows are the only thing the UI cannot express. */
.mc2-herogrid{ --e-con-grid-template-rows:auto auto!important; } /* !important: Elementor's per-element rule is more specific */

/* the hero grid collapses to one column at 980; clear the desktop cell placement */
@media (max-width:980px){
  .mc2-herogrid{ --e-con-grid-template-rows:auto!important; }
  .mc2-herogrid > .e-con{ grid-column:auto!important; grid-row:auto!important; }
}

/* 3. stars and camera drawn from CSS so editor content stays plain text */
.mc2-rating::before, .mc2-review::before{ content:""; width:74px; height:14px; background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20128%2024%22%20fill%3D%22%23F2C230%22%3E%3Cpath%20transform%3D%22translate%280%2C0%29%22%20d%3D%22M12%202l2.9%206.3%206.9.8-5.1%204.7%201.4%206.8L12%2017.3%205.9%2020.6l1.4-6.8L2.2%209.1l6.9-.8z%22%2F%3E%3Cpath%20transform%3D%22translate%2826%2C0%29%22%20d%3D%22M12%202l2.9%206.3%206.9.8-5.1%204.7%201.4%206.8L12%2017.3%205.9%2020.6l1.4-6.8L2.2%209.1l6.9-.8z%22%2F%3E%3Cpath%20transform%3D%22translate%2852%2C0%29%22%20d%3D%22M12%202l2.9%206.3%206.9.8-5.1%204.7%201.4%206.8L12%2017.3%205.9%2020.6l1.4-6.8L2.2%209.1l6.9-.8z%22%2F%3E%3Cpath%20transform%3D%22translate%2878%2C0%29%22%20d%3D%22M12%202l2.9%206.3%206.9.8-5.1%204.7%201.4%206.8L12%2017.3%205.9%2020.6l1.4-6.8L2.2%209.1l6.9-.8z%22%2F%3E%3Cpath%20transform%3D%22translate%28104%2C0%29%22%20d%3D%22M12%202l2.9%206.3%206.9.8-5.1%204.7%201.4%206.8L12%2017.3%205.9%2020.6l1.4-6.8L2.2%209.1l6.9-.8z%22%2F%3E%3C%2Fsvg%3E") no-repeat left center/auto 100%; }
.mc2-rating::before{ display:inline-block; vertical-align:middle; flex:0 0 74px; }
.mc2-review::before{ display:block; margin-bottom:11px; }
.mc2-ugc-card::before{ content:""; display:block; width:22px; height:22px; opacity:.5; background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%235A5A5A%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%227%22%20width%3D%2218%22%20height%3D%2213%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M9%207l1.5-3h3L15%207%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2213.5%22%20r%3D%223.2%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain; }

/* FAQ: native Elementor accordion restyled to match the old <details> list */
.mc2-faq .elementor-accordion{ border:0; }
.mc2-faq .elementor-accordion-item{ border:0; border-bottom:1px solid var(--mc-line); }
.mc2-faq .elementor-tab-title{ background:transparent!important; border:0!important; padding:19px 30px 19px 0; position:relative; }
.mc2-faq .elementor-tab-title .elementor-accordion-title{ font-family:'Fredoka',sans-serif; font-size:15.5px; font-weight:600; color:var(--mc-ink); }
.mc2-faq .elementor-tab-title::after{ content:"+"; position:absolute; right:4px; top:50%; transform:translateY(-50%); font-size:20px; line-height:1; color:var(--mc-red); font-weight:400; }
.mc2-faq .elementor-tab-title.elementor-active::after{ content:"\2212"; }
.mc2-faq .elementor-tab-content{ background:transparent!important; border:0!important; padding:0 0 19px; }
.mc2-faq .elementor-tab-content p{ margin:0; font-size:14.5px; line-height:1.62; color:var(--mc-ink-2); max-width:640px; }
.mc2-faq .elementor-accordion-icon{ display:none!important; }

/* ---------- section head: link sits beside the heading, not under it ----------
   Elementor gives child containers width:100%, which pushed the link onto its
   own line inside the space-between row. */
.e-con.mc2-headrow > .e-con.mc2-headcol{ flex:1 1 auto; width:auto; }
.e-con.mc2-headrow > .elementor-widget{ flex:0 0 auto; width:auto; }

/* ---------- FAQ: match the mockup's plain rule-separated list ----------
   Elementor draws a 1px box on every accordion item and paints the open title
   with the kit accent (gold). Both need out-specifying. */
.mc2-faq .elementor-accordion,
.mc2-faq .elementor-accordion-item{ border:0!important; background:transparent!important; }
.mc2-faq .elementor-accordion-item{ border-bottom:1px solid var(--mc-line)!important; }
.mc2-faq .elementor-tab-title,
.mc2-faq .elementor-tab-title.elementor-active{ background:transparent!important; border:0!important; }
/* the mockup sets questions in the body face, not the display face */
.mc2-faq .elementor-accordion-title,
.mc2-faq .elementor-tab-title.elementor-active .elementor-accordion-title,
.mc2-faq .elementor-tab-title a,
.mc2-faq .elementor-tab-title.elementor-active a{
  font-family:'Plus Jakarta Sans',sans-serif!important;
  font-size:15.5px!important; font-weight:600!important;
  color:var(--mc-ink)!important; text-decoration:none!important;
}

/* ---------- review stars: 128x24 artwork at 14px tall needs 74.67px ---------- */
.mc2-rating::before, .mc2-review::before{ width:76px; }
.mc2-rating::before{ flex:0 0 76px; }

/* ---------- review cards ----------
   The mockup does NOT bottom-align the author block - all three quotes happen to
   wrap to 3 lines there, so they line up naturally. Pinning it with margin-top:auto
   turned the slack on a 2-line quote into a hole in the middle of the card. */
.e-con.mc2-review > .e-con.mc2-who{ margin-top:0; }
.e-con.mc2-review .mc2-review p, .e-con.mc2-review p{ margin-bottom:20px; }

/* ---------- marquee: widen so the -1deg rotation cannot expose the corners ---------- */
.mc2-marquee{ width:120%!important; margin-left:-10%!important; }
/* Elementor paints .elementor-widget-text-editor with the kit ink colour, which
   overrode the cream inherited from .mc2-marquee. */
.mc2-marquee, .mc2-marquee *{ color:var(--mc-cream)!important; }
.mc2-marquee-track span{ text-transform:uppercase; letter-spacing:.045em; }

@media (max-width:620px){
  .mc2-marquee{ width:130%!important; margin-left:-15%!important; }
}

/* Elementor's .e-con::before doubles as the container background-overlay layer and
   carries position:absolute. Any pseudo-element we add to a container therefore leaves
   the flow and pins to the padding-box corner, ignoring the container's own padding -
   which is why the review stars sat flush to the card corner instead of above the quote,
   sharing its left edge. Put them back into normal flex flow. */
.e-con.mc2-review::before,
.e-con.mc2-ugc-card::before{ position:static!important; }

/* ---------- "Straight off the feed" rail ----------
   Shared by the Instagram feed and the fallback photography so both look identical. */
.mc2-rail{
  display:flex; flex-wrap:nowrap; gap:16px; overflow-x:auto; overflow-y:hidden;
  padding:4px 22px 12px; scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch; scrollbar-width:none;
}
.mc2-rail::-webkit-scrollbar{ display:none; }
.mc2-rail .mc2-feed{ flex:0 0 250px; width:250px; height:250px; border-radius:18px; overflow:hidden; background:var(--mc-cream-2); scroll-snap-align:start; }
.mc2-rail .mc2-feed img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Smash Balloon renders a grid by default. Flatten it into the same single-row rail. */
.mc2-rail--ig #sb_instagram,
.mc2-rail--ig .sbi_images{ padding:0!important; width:auto!important; }
.mc2-rail--ig #sb_instagram{ display:contents!important; }
.mc2-rail--ig .sbi_images{
  display:flex!important; flex-wrap:nowrap!important; gap:16px!important;
  padding:0!important; width:max-content!important;
}
.mc2-rail--ig .sbi_item{
  flex:0 0 250px!important; width:250px!important; height:250px!important;
  padding:0!important; margin:0!important; border-radius:18px; overflow:hidden;
  background:var(--mc-cream-2); scroll-snap-align:start;
}
.mc2-rail--ig .sbi_photo_wrap, .mc2-rail--ig .sbi_photo{
  width:100%!important; height:100%!important; display:block!important; border-radius:0!important;
}
.mc2-rail--ig .sbi_photo img{ width:100%!important; height:100%!important; object-fit:cover!important; display:block; }
/* the plugin's own chrome is off in settings, but belt and braces */
.mc2-rail--ig #sbi_load, .mc2-rail--ig .sbi_header, .mc2-rail--ig #sbi_images .sbi_loader{ display:none!important; }

@media (max-width:620px){
  .mc2-rail{ padding:4px 16px 12px; gap:12px; }
  .mc2-rail .mc2-feed, .mc2-rail--ig .sbi_item{ flex-basis:200px!important; width:200px!important; height:200px!important; }
}

/* ---------- Subscribe & save ---------- */
.e-con.mc-sub-card{
  background:#fff; border:1px solid var(--mc-line); border-radius:18px; position:relative;
}
.e-con.mc-sub-card .mc2-tag{ align-self:flex-start; margin-bottom:8px; }
.mc-sub-n{ display:block; font-family:'Fredoka',sans-serif; font-size:15px; font-weight:600; color:var(--mc-ink-2); }
.mc-sub-price{ display:block; font-family:'Fredoka',sans-serif; font-size:29px; font-weight:600; color:var(--mc-ink); line-height:1.1; margin-top:2px; }
.mc-sub-per{ display:block; font-size:12px; color:var(--mc-ink-2); margin-top:2px; }
.mc-sub-save{
  display:inline-block; margin-top:10px; background:rgba(31,143,74,.10); color:var(--mc-green);
  font-size:11.5px; font-weight:800; letter-spacing:.02em; padding:5px 10px; border-radius:99px;
}
.mc-sub-line{ font-size:13px; line-height:1.5; color:var(--mc-ink-2); margin:11px 0 0; }
.mc-sub-cta{
  display:flex; align-items:center; justify-content:center; margin-top:14px;
  background:#25D366; color:#fff!important; border-radius:11px; padding:12px 16px; min-height:46px;
  font-size:13.5px; font-weight:700; text-decoration:none!important; transition:filter .18s ease;
}
.mc-sub-cta:hover{ filter:brightness(.94); }
.mc-sub-cta--dark{ background:var(--mc-ink); }
.mc-sub-foot{ font-size:12.5px; line-height:1.6; color:var(--mc-ink-2); margin:16px 0 0; }

/* gym / bulk strip */
.e-con.mc-gym{
  background:var(--mc-cream-2); border-radius:18px; margin-top:18px; justify-content:space-between;
}
.mc-gym-t{ display:block; font-family:'Fredoka',sans-serif; font-size:18px; font-weight:600; color:var(--mc-ink); }
.mc-gym-s{ display:block; font-size:12.5px; color:var(--mc-ink-2); margin-top:3px; }
.e-con.mc-gym .mc-sub-cta{ margin-top:0; padding:12px 22px; }

@media (max-width:620px){
  .mc-sub-price{ font-size:25px; }
  .e-con.mc-gym{ flex-direction:column; align-items:stretch!important; }
  /* the CTA sits inside an Elementor widget wrapper, which shrink-wraps in a column flex */
  .e-con.mc-gym > .elementor-widget{ width:100%; }
  .e-con.mc-gym .mc-sub-cta{ width:100%; }
}
