/* IMC Story 0.1.14 | Desktop owned renderer */
@media (min-width:769px) {
  html,
  body.imc-story-page-owned,
  body.imc-story-page-owned #page,
  body.imc-story-page-owned .site,
  body.imc-story-page-owned .site-content,
  body.imc-story-page-owned .site-container,
  body.imc-story-page-owned .content-area,
  body.imc-story-page-owned .content-container,
  body.imc-story-page-owned .content-bg,
  body.imc-story-page-owned #primary,
  body.imc-story-page-owned #main,
  body.imc-story-page-owned .site-main,
  body.imc-story-page-owned article,
  body.imc-story-page-owned .entry,
  body.imc-story-page-owned .entry-content,
  body.imc-story-page-owned .entry-content-wrap,
  body.imc-story-page-owned .single-content,
  body.imc-story-page-owned .wp-site-blocks {
    background:#000 !important;
    background-color:#000 !important;
  }

  body.imc-story-page-owned .entry-header,
  body.imc-story-page-owned .entry-title { display:none !important; }

  body.imc-story-page-owned .entry-content,
  body.imc-story-page-owned .site-main,
  body.imc-story-page-owned #main,
  body.imc-story-page-owned #primary,
  body.imc-story-page-owned .content-area,
  body.imc-story-page-owned .content-container {
    max-width:none !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
  }

  .imc-story-mobile-original { display:none !important; }

  .imc-story-desktop-owned,
  .imc-story-desktop-owned * { box-sizing:border-box; }

  /* One viewport-based owner. Children no longer inherit the Gutenberg column width. */
  .imc-story-desktop-owned {
    position:relative;
    left:50%;
    width:100vw;
    max-width:100vw;
    margin:0 0 0 -50vw;
    padding:0;
    color:#fff;
    background:#000;
    font-family:Lato,Arial,sans-serif;
    overflow:visible;
  }

  .imc-story-owned-kicker {
    position:relative;
    display:inline-block;
    padding-left:42px;
    color:#fff;
    font-family:"League Spartan",Arial,sans-serif;
    font-size:15px;
    font-weight:900;
    letter-spacing:.08em;
    line-height:1;
    text-transform:uppercase;
  }
  .imc-story-owned-kicker:before {
    content:"";
    position:absolute;
    left:0;
    top:50%;
    width:30px;
    height:2px;
    background:#a10d00;
    transform:translateY(-50%);
  }

  /* HERO: same construction principle as validated Review hero. */
  .imc-story-owned-hero {
    position:relative;
    isolation:isolate;
    z-index:2;
    width:100%;
    min-height:570px;
    margin:-24px 0 34px;
    overflow:hidden;
    background:linear-gradient(90deg,#000 0%,#000 38%,#130000 49%,#510000 66%,#a10d00 100%);
    color:#fff;
  }

  /* Single smooth transition over the portrait side. No hard vertical cut. */
  .imc-story-owned-hero:before {
    content:"";
    position:absolute;
    inset:0;
    z-index:3;
    pointer-events:none;
    background:linear-gradient(90deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,0) 39%,
      rgba(0,0,0,.98) 43%,
      rgba(0,0,0,.78) 47%,
      rgba(0,0,0,.52) 51%,
      rgba(0,0,0,.24) 55%,
      rgba(0,0,0,.07) 58%,
      rgba(0,0,0,0) 62%
    );
  }

  .imc-story-owned-wave {
    position:absolute;
    left:0;
    right:0;
    width:100%;
    line-height:0;
    pointer-events:none;
    z-index:20;
  }
  .imc-story-owned-wave path { fill:#000; }
  .imc-story-owned-wave--top {
    top:-1px;
    height:82px;
  }
  .imc-story-owned-wave--bottom {
    bottom:-1px;
    height:112px;
  }

  .imc-story-owned-hero-copy {
    position:relative;
    z-index:5;
    width:54%;
    min-height:570px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:118px 48px 138px clamp(88px,11.5vw,190px);
    background:transparent;
  }

  .imc-story-owned-hero h1 {
    margin:0 0 24px !important;
    font-family:"League Spartan",Arial,sans-serif !important;
    font-size:clamp(64px,5.2vw,82px) !important;
    line-height:.88 !important;
    font-weight:900 !important;
    letter-spacing:-1.5px;
    text-transform:uppercase;
    color:#fff !important;
  }
  .imc-story-owned-hero h1 span {
    display:block;
    color:#b9150b;
  }

  .imc-story-owned-hero-text {
    width:min(590px,100%);
    max-width:590px;
  }
  .imc-story-owned-hero-text p {
    margin:0 0 14px !important;
    color:#fff !important;
    font-size:16px !important;
    line-height:1.55 !important;
    text-shadow:0 2px 8px rgba(0,0,0,.72);
  }
  .imc-story-owned-hero-text p:last-child { margin-bottom:0 !important; }

  .imc-story-owned-portrait {
    position:absolute;
    z-index:2;
    top:0;
    right:0;
    bottom:0;
    width:57%;
    display:flex;
    align-items:flex-end;
    justify-content:flex-end;
    overflow:hidden;
    background:transparent;
  }
  .imc-story-owned-portrait img {
    display:block;
    position:relative;
    z-index:1;
    width:auto;
    height:555px;
    max-width:100%;
    object-fit:contain;
    object-position:right bottom;
    opacity:1 !important;
    /* Fade the rectangular left edge of the portrait into the hero. */
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 4%,rgba(0,0,0,.52) 11%,#000 25%,#000 100%);
    mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 4%,rgba(0,0,0,.52) 11%,#000 25%,#000 100%);
  }

  /* STATS */
  .imc-story-owned-stats {
    position:relative;
    width:calc(100% - 96px);
    max-width:1500px;
    margin:0 auto 52px;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    border:2px solid #a10d00;
    border-radius:18px;
    overflow:hidden;
    background:#000;
  }
  .imc-story-owned-stats>div {
    min-height:116px;
    padding:16px 18px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    text-align:center;
    background:#000;
  }
  .imc-story-owned-stats>div+div { border-left:1px solid rgba(161,13,0,.55); }
  .imc-story-owned-stats strong {
    color:#c51b0e;
    font-family:"League Spartan",Arial,sans-serif;
    font-size:40px;
    line-height:.95;
  }
  .imc-story-owned-stats span,
  .imc-story-owned-stats small {
    max-width:260px;
    margin:0;
    color:#fff;
    font-family:"League Spartan",Arial,sans-serif;
    font-size:12px;
    font-weight:800;
    line-height:1.15;
    text-transform:uppercase;
  }
  .imc-story-owned-stats small { margin:0; }
  .imc-story-owned-stat--engagement strong,
  .imc-story-owned-stat--engagement span,
  .imc-story-owned-stat--engagement small { margin:0 !important; }

  /* HISTORY / TIMELINE */
  .imc-story-owned-history {
    width:100%;
    margin:0;
    padding:0 0 54px;
    background:#000 !important;
  }
  .imc-story-owned-history-head {
    text-align:center;
    padding:0 24px;
    background:#000;
  }
  .imc-story-owned-history-head .imc-story-owned-kicker { color:#a10d00; }
  .imc-story-owned-history-head h2 {
    margin:0 0 24px !important;
    font-family:"League Spartan",Arial,sans-serif !important;
    font-size:58px !important;
    line-height:.95 !important;
    color:#fff !important;
  }
  .imc-story-owned-history-head h2 span { color:#b9150b; }
  .imc-story-owned-history-head p { margin:0 !important; color:#fff !important; font-size:16px !important; }

  .imc-story-owned-timeline {
    position:relative;
    width:calc(100% - 96px);
    max-width:1600px;
    margin:62px auto 0;
    display:block;
    min-height:160px;
    overflow:visible;
    background:#000 !important;
  }
  /* White rail exactly through the centre of the 14px dots. */
  .imc-story-owned-timeline:before {
    content:"";
    position:absolute;
    left:6.25%;
    right:6.25%;
    top:6px;
    height:2px;
    background:#fff !important;
    z-index:4;
    pointer-events:none;
  }
  .imc-story-owned-rail { display:none !important; }

  /* One single 2px divider, always behind hover cards. */
  .imc-story-owned-birth {
    position:absolute;
    left:50%;
    top:-34px;
    width:2px;
    height:124px;
    margin-left:-1px;
    border:0;
    background:#a10d00 !important;
    z-index:1;
    pointer-events:none;
  }
  .imc-story-owned-birth span {
    position:absolute;
    left:15px;
    top:0;
    color:#a10d00;
    font-family:"League Spartan",Arial,sans-serif;
    font-size:11px;
    font-weight:900;
    line-height:1;
    letter-spacing:.08em;
    text-transform:uppercase;
    white-space:nowrap;
  }
  .imc-story-owned-point {
    position:absolute;
    top:0;
    left:var(--imc-timeline-position);
    width:0;
    z-index:5;
    text-align:center;
    overflow:visible;
  }
  .imc-story-owned-point:hover,
  .imc-story-owned-point:focus-within { z-index:45; }
  .imc-story-owned-point button {
    appearance:none;
    display:block;
    width:56px;
    min-width:56px;
    border:0;
    background:transparent !important;
    padding:0;
    margin:0;
    color:#fff;
    cursor:default;
    transform:translateX(-50%);
    box-shadow:none !important;
    outline:0;
    white-space:nowrap;
  }
  .imc-story-owned-point button i {
    position:relative;
    z-index:3;
    display:block;
    width:14px;
    height:14px;
    margin:0 auto 8px;
    border:2px solid #a10d00;
    border-radius:50%;
    background:#000;
  }
  .imc-story-owned-point button b {
    display:block;
    width:100%;
    color:#fff;
    font-family:"League Spartan",Arial,sans-serif;
    font-size:15px;
    line-height:1;
    white-space:nowrap;
    word-break:normal;
    overflow-wrap:normal;
  }
  .imc-story-owned-point:hover button i,
  .imc-story-owned-point:focus-within button i { background:#a10d00; border-color:#fff; }

  .imc-story-owned-card {
    position:absolute;
    z-index:40;
    top:46px;
    left:50%;
    width:460px;
    padding:20px;
    border:1px solid #333;
    border-top:2px solid #a10d00;
    border-radius:12px;
    background:#090909;
    color:#fff;
    text-align:left;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate(-50%,8px);
    transition:.15s ease;
  }
  .imc-story-owned-point:hover .imc-story-owned-card,
  .imc-story-owned-point:focus-within .imc-story-owned-card {
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translate(-50%,0);
  }
  .imc-story-owned-point.is-first .imc-story-owned-card { left:0; transform:translate(0,8px); }
  .imc-story-owned-point.is-first:hover .imc-story-owned-card { transform:translate(0,0); }
  .imc-story-owned-point.is-last .imc-story-owned-card { left:auto; right:0; transform:translate(0,8px); }
  .imc-story-owned-point.is-last:hover .imc-story-owned-card { transform:translate(0,0); }
  .imc-story-owned-card-head {
    display:grid;
    grid-template-columns:96px 1fr;
    gap:18px;
    align-items:center;
    margin-bottom:14px;
  }
  .imc-story-owned-card-head img {
    width:96px;
    height:96px;
    object-fit:contain;
    background:#fff;
    border-radius:8px;
    padding:3px;
  }
  .imc-story-owned-card small { color:#c51b0e; font-size:16px; font-weight:900; line-height:1; letter-spacing:.03em; }
  .imc-story-owned-card h3 {
    margin:5px 0 0 !important;
    color:#fff !important;
    font-family:"League Spartan",Arial,sans-serif !important;
    font-size:28px !important;
    line-height:1.02 !important;
  }
  .imc-story-owned-card p { margin:0 !important; color:#ddd !important; font-size:16px !important; line-height:1.56 !important; }
  .imc-story-owned-card-action {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    margin-top:16px;
    padding:0 14px;
    border:1px solid #a10d00;
    border-radius:8px;
    background:#a10d00;
    color:#fff !important;
    font-family:"League Spartan",Arial,sans-serif;
    font-size:12px;
    font-weight:900;
    text-decoration:none !important;
    text-transform:uppercase;
  }
  .imc-story-owned-card-action:hover,.imc-story-owned-card-action:focus-visible {
    border-color:#a10d00;
    background:#fff;
    color:#a10d00 !important;
    outline:none;
  }

  /* HALL */
  .imc-story-owned-center {
    position:relative;
    width:100%;
    margin:0 0 -34px;
    overflow:visible;
    background:#000;
    z-index:0;
  }
  .imc-story-owned-center-image {
    display:block;
    width:100%;
    height:auto;
    margin:6px 0 -30px;
    padding:0;
    border:0;
  }
  .imc-story-owned-center-fade {
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:34px;
    background:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.72) 45%,rgba(0,0,0,0) 100%);
    z-index:1;
    pointer-events:none;
  }
  .imc-story-owned-center-copy {
    position:absolute;
    left:clamp(46px,4.2vw,74px);
    bottom:clamp(34px,3.8vw,62px);
    z-index:2;
    width:min(780px,52vw);
    padding:18px 22px;
    border-radius:24px;
    background:rgba(0,0,0,.28);
    box-shadow:0 12px 28px rgba(0,0,0,.22);
    backdrop-filter:blur(2px);
  }
  .imc-story-owned-center-copy .imc-story-owned-kicker { color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.95); }
  .imc-story-owned-center-copy h2 {
    margin:14px 0 18px !important;
    white-space:nowrap;
    color:#fff !important;
    font-family:"League Spartan",Arial,sans-serif !important;
    font-size:54px !important;
    line-height:.98 !important;
    text-shadow:0 3px 14px rgba(0,0,0,.98);
  }
  .imc-story-owned-center-copy p {
    max-width:700px;
    margin:0 0 10px !important;
    color:#fff !important;
    font-size:15px !important;
    line-height:1.48 !important;
    text-shadow:0 2px 8px rgba(0,0,0,.98);
  }
  .imc-story-owned-center-copy p:last-child { margin-bottom:0 !important; }

  /* Footer stays above the photo. Restore the red line explicitly. */
  body.imc-story-page-owned .site-footer,
  body.imc-story-page-owned #colophon,
  body.imc-story-page-owned footer.site-footer {
    position:relative;
    z-index:10;
    background:#000 !important;
    background-color:#000 !important;
    border-top:0 !important;
    margin-top:0 !important;
  }
}

@media (max-width:768px) {
  .imc-story-desktop-owned { display:none !important; }
  .imc-story-mobile-original { display:block !important; }
}




/* IMC Story 0.1.20 | desktop hero + hall overlap corrections */
@media (min-width:769px) {
  /* Smaller hero, smoother portrait integration, no visible hard blocks. */
  .imc-story-owned-hero {
    min-height:455px !important;
    margin:-24px 0 28px !important;
    background:linear-gradient(90deg,#000 0%,#000 46%,#180000 60%,#530000 78%,#a10d00 100%) !important;
  }
  .imc-story-owned-hero:before {
    background:linear-gradient(90deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,0) 36%,
      rgba(0,0,0,.88) 45%,
      rgba(0,0,0,.56) 52%,
      rgba(0,0,0,.24) 59%,
      rgba(0,0,0,.06) 66%,
      rgba(0,0,0,0) 72%
    ) !important;
  }
  .imc-story-owned-wave--top {
    top:-12px !important;
    height:68px !important;
  }
  .imc-story-owned-wave--bottom {
    bottom:-1px !important;
    height:96px !important;
  }
  .imc-story-owned-hero-copy {
    width:54% !important;
    min-height:455px !important;
    padding:84px 40px 104px clamp(56px,8vw,156px) !important;
  }
  .imc-story-owned-hero h1 {
    margin:0 0 22px !important;
    font-size:clamp(58px,4.7vw,78px) !important;
  }
  .imc-story-owned-hero-text {
    width:min(540px,100%) !important;
    max-width:540px !important;
  }
  .imc-story-owned-hero-text p {
    font-size:15px !important;
    line-height:1.5 !important;
  }

  .imc-story-owned-portrait {
    width:53% !important;
    align-items:flex-end !important;
    justify-content:flex-end !important;
  }
  .imc-story-owned-portrait::before {
    content:"";
    position:absolute;
    inset:0 42% 0 -6%;
    z-index:2;
    pointer-events:none;
    background:linear-gradient(90deg,#000 0%,rgba(0,0,0,.92) 16%,rgba(0,0,0,.56) 36%,rgba(0,0,0,.18) 62%,rgba(0,0,0,0) 100%);
  }
  .imc-story-owned-portrait img {
    height:520px !important;
    max-width:none !important;
    transform:translateY(-26px) !important;
    object-position:right bottom !important;
    -webkit-mask-image:none !important;
    mask-image:none !important;
    filter:drop-shadow(-16px 0 30px rgba(0,0,0,.34));
  }

  /* Engagement stat restored to 3 clean lines with regular spacing. */
  .imc-story-owned-stat--engagement {
    gap:7px !important;
  }
  .imc-story-owned-stat--engagement span,
  .imc-story-owned-stat--engagement small {
    max-width:270px !important;
    line-height:1.18 !important;
  }
  .imc-story-owned-stat--engagement strong {
    line-height:1 !important;
    margin:0 !important;
  }

  /* Keep the footer fixed as a block and let the hall photo slide underneath it. */
  .imc-story-owned-center {
    margin:0 !important;
    padding:0 !important;
    overflow:visible !important;
    z-index:0 !important;
  }
  .imc-story-owned-center-image {
    position:relative !important;
    z-index:0 !important;
    margin:6px 0 -124px !important;
  }
  .imc-story-owned-center-copy {
    z-index:2 !important;
  }

  body.imc-story-page-owned .site-footer,
  body.imc-story-page-owned #colophon,
  body.imc-story-page-owned footer.site-footer,
  body.imc-story-page-owned .imc-public-unified-footer {
    position:relative !important;
    z-index:50 !important;
    background:#000 !important;
    background-color:#000 !important;
    border-top:0 !important;
    margin-top:0 !important;
  }
  body.imc-story-page-owned .imc-public-unified-footer__curve,
  body.imc-story-page-owned .imc-public-unified-footer__inner,
  body.imc-story-page-owned .imc-public-unified-footer__bottom {
    position:relative !important;
    z-index:51 !important;
    background:#000 !important;
    background-color:#000 !important;
  }
}


/* IMC Story 0.1.21 | targeted portrait correction only */
@media (min-width:769px) {
  /* Restore the exact hero gradient from the pre-regression version. */
  .imc-story-owned-hero {
    min-height:500px !important;
    background:linear-gradient(90deg,#000 0%,#000 38%,#130000 49%,#510000 66%,#a10d00 100%) !important;
  }
  .imc-story-owned-hero:before {
    background:linear-gradient(90deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,0) 39%,
      rgba(0,0,0,.98) 43%,
      rgba(0,0,0,.78) 47%,
      rgba(0,0,0,.52) 51%,
      rgba(0,0,0,.24) 55%,
      rgba(0,0,0,.07) 58%,
      rgba(0,0,0,0) 62%
    ) !important;
  }

  /* Do not add any extra rectangular overlay on the portrait area. */
  .imc-story-owned-portrait::before {
    display:none !important;
  }

  /* Fill the portrait zone by enlarging the existing image, anchored bottom-right. */
  .imc-story-owned-portrait {
    width:59% !important;
    overflow:hidden !important;
  }
  .imc-story-owned-portrait img {
    height:500px !important;
    width:auto !important;
    max-width:none !important;
    object-fit:contain !important;
    object-position:right bottom !important;
    transform:scale(1.18) !important;
    transform-origin:right bottom !important;
    filter:none !important;
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 6%,rgba(0,0,0,.28) 15%,rgba(0,0,0,.62) 27%,#000 42%,#000 100%) !important;
    mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 6%,rgba(0,0,0,.28) 15%,rgba(0,0,0,.62) 27%,#000 42%,#000 100%) !important;
  }
}

/* IMC Story 0.1.29 | desktop footer regression fix only */
@media (min-width:769px) {
  /* The validated hall image must end in normal document flow.
     The old negative bottom margin pulled the unified footer over the photo. */
  .imc-story-owned-center-image {
    margin:6px 0 0 !important;
  }

  /* Keep the footer directly after Story, never superimposed on the hall. */
  body.imc-story-page-owned .site-footer,
  body.imc-story-page-owned #colophon,
  body.imc-story-page-owned footer.site-footer,
  body.imc-story-page-owned .imc-public-unified-footer {
    clear:both !important;
    margin-top:0 !important;
    position:relative !important;
    z-index:50 !important;
    background:#000 !important;
    background-color:#000 !important;
  }
}
