/* The offer panel on /offer/#offer: the same rules the home page's offer popup uses (site/index.html). */
  .t-price { font-family: var(--font-ui); font-weight: 800; font-size: 55px;
             line-height: 1; letter-spacing: -0.02em; color: var(--ink); margin: 0; }
  @media (max-width: 700px) { .t-price { font-size: 42px; } }
  .t-offer-title { font-family: var(--font-ui); font-weight: 700; font-size: 32px;
                   line-height: 1.15; letter-spacing: -0.01em;
                   color: var(--ink); white-space: nowrap; margin: 0; }
  @media (max-width: 700px) { .t-offer-title { font-size: 20px; } }
  .t-subhead { font-family: var(--font-italic); font-weight: 400; font-size: 22px;
               line-height: 1.1; color: var(--ink); margin: 0 0 12px; }
  .t-body { font-size: 16px; line-height: 1.45; color: var(--ink); }
  @media (max-width: 700px) { .t-body { line-height: 1.18; } }
  .t-label { font-weight: 700; font-size: 12px; letter-spacing: .08em;
             text-transform: uppercase; }
  @media (max-width: 700px) { .t-label { font-size: 12px; } }
  .pill { display: inline-flex; align-items: center; justify-content: center;
          box-sizing: border-box; width: fit-content; white-space: nowrap;
          border-radius: var(--r-pill); font-weight: 700; letter-spacing: .08em;
          text-transform: uppercase; background: var(--white); color: var(--coral);
          padding: 9px 20px; font-size: 12px; }
  @media (max-width: 700px) { .pill { padding: 6px 10px; font-size: 10px; } }
  /* The priced card, and the column of feature lists beside it. */
  .offer { flex: 1 1 660px; min-width: 0; background: var(--white);
           border: 1px solid var(--line); border-radius: var(--r4);
           padding: 44px 40px 40px; box-shadow: var(--e1); }
  @media (max-width: 1024px) { .offer { flex: 0 0 auto; } }
  @media (max-width: 700px)  { .offer { padding: 20px; } }

  /* A block at desktop, where the card and the buttons simply stack. It only
     becomes a wrapping row at 1024 and below. */
  .offer__side { flex: 1 1 320px; min-width: 0; position: relative;
                 display: block; gap: 36px; align-items: flex-start; }
  @media (max-width: 1024px) { .offer__side { flex: 0 0 auto;
                                              display: flex; flex-flow: row wrap; } }

  /* THE CARD HEAD: a title, its pill, and the price. One markup, three shapes.
     Desktop stacks them; 1024 and below sets the price beside the title block;
     the phone puts the pill next to the title and drops the price underneath. */
  .offer__head { display: flex; flex-direction: column; align-items: flex-start;
                 margin: 0 0 34px; }
  .offer__head--sup { margin-bottom: 30px; }
  .offer__title { display: flex; flex-direction: column; align-items: flex-start;
                  gap: 14px; min-width: 0; }
  .offer__price { order: 1; margin-top: 16px; }
  /* "Hosting & support" is longer than its card: there it wraps instead of running past the edge. */
  .offer__sup .offer__title { max-width: 100%; }
  .offer__sup .t-offer-title { white-space: normal; }

  /* What each card says about the same thing, in its own head. */
  .offer__multi { order: 3; margin: 10px 0 0; font-size: 15px; line-height: 1.4;
                  color: var(--ink-mute); }

  /* The offer teaser rides with the price, and opens the offer when tapped. It
     starts at the card's left edge like everything else in the head. */
  .offer__deal { order: 2; margin-top: 14px; align-self: flex-start; }
  @media (max-width: 1024px) { .offer__deal { margin-top: 0; } }
  @media (max-width: 1024px) {
    .offer__head { flex-direction: row; align-items: center; gap: 34px; }
    .offer__price { order: 0; margin-top: 0; }
  }
  @media (max-width: 700px) {
    .offer__head { flex-direction: column; align-items: flex-start; gap: 12px; }
    .offer__title { flex-direction: row; align-items: center; gap: 8px; }
    .offer__price { order: 3; }
    .offer__deal  { order: 4; }
  }

  /* The feature lists: four columns of them in the design card, one in support. */
  .offer__lists { display: grid; gap: 34px 40px;
                  grid-template-columns: repeat(auto-fit, minmax(238px, 1fr)); }
  @media (max-width: 1024px) { .offer__lists { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (max-width: 700px)  { .offer__lists { grid-template-columns: 1fr; } }
  .offer__list { display: grid; gap: 8px; }
  .offer__sup-list { display: grid; grid-template-columns: 1fr; gap: 8px 24px; }

  /* The support card sits beside the design card at desktop, half a row wide
     between 701 and 1024, and full width on a phone. */
  .offer__sup { flex: 0 1 auto; min-width: 0; position: relative; z-index: 2;
                background: var(--white); border: 1px solid var(--line);
                border-radius: var(--r4); padding: 44px 40px 40px;
                box-shadow: var(--e1); }
  @media (max-width: 1024px) { .offer__sup { flex: 0 1 calc(50% - 18px); } }
  @media (max-width: 700px)  { .offer__sup { flex: 1 1 100%; padding: 20px; } }

  /* The note that closes the support card. */
  .offer__note { border-top: 1px solid var(--line); padding-top: 16px;
                 margin-top: 20px; font-size: 16px; line-height: 1.5;
                 color: var(--ink-mute); }

  /* The two offer cards, side by side above 1024 and stacked below. */
  .offers { position: relative; display: flex; flex-flow: row;
            align-items: stretch; gap: 30px; padding: 20px; }
  @media (max-width: 1024px) { .offers { flex-flow: column; padding: 0; } }


  .strip__note { border-top: 1px solid var(--line); }
  .strip__note > div { box-sizing: border-box; max-width: 1000px; margin: 0 auto;
                       padding: 10px 74px; display: flex; align-items: center;
                       justify-content: center; gap: 7px 20px; flex-wrap: wrap;
                       font-size: 14px; color: var(--ink); text-align: left; }
  @media (max-width: 950px) { .strip__note > div { padding: 10px 20px; } }
  @media (max-width: 700px) { .strip__note > div { padding: 10px 6px; } }


  /* THE GIFT CAT. She leans into the bottom-right corner of the offer. Tablet
     is the only width that leaves her that corner free, so she is hidden by
     default and shown for that one band — the width decides, not JavaScript. */
  .offer__cat { display: none; position: absolute; right: 78px; bottom: 0;
                width: 162px; opacity: .9; pointer-events: none; z-index: 4; }
  @media (min-width: 951px) and (max-width: 1024px) { .offer__cat { display: block; } }






  /* THE OFFER POPUP. Details opens it: the two offer cards on the tint, over the page. */
  .offer .pill, .offer__sup .pill { background: var(--tint); }
  .offer__per { font-size: .4em; font-weight: 700; letter-spacing: 0; }
  .offer__price-note { display: block; font-size: 15px; font-weight: 600; line-height: 1.3; letter-spacing: 0; color: var(--ink-mute); margin-top: 6px; }
