    .gy-quote-widget,
    .gy-quote-widget * {
      box-sizing: border-box;
    }

    .gy-quote-widget {
      --gy-pink: #ed54a4;
      --gy-pink-dark: #db4393;
      --gy-pink-soft: #fff1f8;
      --gy-gold: #c9a74d;
      --gy-gold-soft: #fbf5e4;
      --gy-mint: #c8f4e5;
      --gy-text: #29272d;
      --gy-muted: #696673;
      --gy-border: #f2dce8;
      --gy-border-soft: #f7edf2;
      --gy-card: #ffffff;
      --gy-shadow: 0 18px 48px rgba(237, 84, 164, 0.10);
      --gy-radius-lg: 26px;
      --gy-radius-md: 18px;
      --gy-radius-sm: 14px;

      width: min(1200px, 100%);
      margin: 10px auto;
      color: var(--gy-text);
      font-family: inherit;
    }

    .gy-quote-widget a,
    .gy-quote-widget button,
    .gy-quote-widget input,
    .gy-quote-widget select {
      font-family: inherit;
    }

    .gy-widget-shell {
      position: relative;
      overflow: hidden;
      display: grid;
      grid-template-columns: minmax(0, 1.2fr) minmax(310px, 0.8fr);
      border: 1px solid var(--gy-border);
      border-radius: var(--gy-radius-lg);
      background: #ffffff;
      box-shadow: var(--gy-shadow);
      isolation: isolate;
    }

    .gy-widget-shell::before {
      content: "";
      position: absolute;
      width: 260px;
      height: 260px;
      left: -120px;
      top: -130px;
      border-radius: 999px;
      background: rgba(237, 84, 164, 0.08);
      pointer-events: none;
      z-index: -1;
    }

    .gy-options-panel {
      padding: clamp(22px, 3.4vw, 25px);
      border-right: 1px solid var(--gy-border);
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 250, 253, 0.88));
    }

    .gy-summary-panel {
      padding: clamp(22px, 3vw, 34px);
      background: linear-gradient(180deg, rgba(255, 247, 251, 0.92), #ffffff);
    }

    .gy-summary-sticky {
      position: sticky;
      top: 22px;
    }

    .gy-hero-title {
      margin: 0 0 26px;
      color: var(--gy-text);
      font-size: clamp(1.85rem, 3.4vw, 4rem);
      line-height: 1;
      letter-spacing: -0.04em;
      font-weight: 900;
    }

    .gy-hero-title span {
      color: var(--gy-pink);
    }

    .gy-step {
      margin-top: 28px;
    }

    .gy-step:first-of-type {
      margin-top: 0;
    }

    .gy-step-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 14px;
      margin-bottom: 14px;
    }

    .gy-step-title {
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 10px 0;
      color: var(--gy-text);
      font-size: 1.75rem;
      line-height: 1.2;
      font-weight: 850;
    }

    .gy-step-number {
      display: inline-grid;
      place-items: center;
      width: 27px;
      height: 27px;
      flex: 0 0 27px;
      border-radius: 999px;
      background: var(--gy-pink);
      color: #fff;
      font-size: 1.5rem;
      font-weight: 800;
      box-shadow: 0 8px 18px rgba(237, 84, 164, 0.22);
    }

    .gy-step-hint {
      margin: 4px 0 0 37px;
      color: var(--gy-muted);
      font-size: 1.4rem;
      line-height: 1.35;
    }

    .gy-service-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
    }

    .gy-service-card {
      position: relative;
      display: grid;
      grid-template-columns: 68px minmax(0, 1fr);
      align-items: stretch;
      min-height: 96px;
      overflow: hidden;
      border: 1.5px solid #f2eef3;
      border-radius: 18px;
      background: #fff;
      cursor: pointer;
      transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, background 160ms ease;
    }

    .gy-service-card:hover {
      transform: translateY(-1px);
      border-color: rgba(237, 84, 164, 0.55);
      box-shadow: 0 12px 26px rgba(237, 84, 164, 0.09);
    }

    .gy-service-card:focus-within {
      outline: 3px solid rgba(237, 84, 164, 0.16);
      outline-offset: 3px;
      border-color: var(--gy-pink);
    }

    .gy-service-card.is-selected {
      border-color: var(--gy-pink);
      background: linear-gradient(180deg, #fff, #fff6fb);
      box-shadow: 0 14px 30px rgba(237, 84, 164, 0.12);
    }

    .gy-service-input {
      position: absolute;
      width: 1px;
      height: 1px;
      opacity: 0;
      pointer-events: none;
    }

    .gy-service-media {
      position: relative;
      min-height: 100%;
      overflow: hidden;
      background: #fff4fa;
    }

    .gy-service-img {
      display: block;
      width: 100%;
      height: 100%;
      min-height: 96px;
      object-fit: cover;
      object-position: center;
    }

    .gy-service-body {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      padding: 12px 12px 12px 14px;
    }

    .gy-service-name {
      display: block;
      color: var(--gy-text);
      font-size: 1.8rem;
      font-weight: 850;
      line-height: 1.15;
    }

    .gy-check {
      display: grid;
      place-items: center;
      width: 24px;
      height: 24px;
      flex: 0 0 24px;
      border: 2px solid #ded8df;
      border-radius: 8px;
      background: #fff;
      color: #fff;
      transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
    }

    .gy-check svg {
      width: 14px;
      height: 14px;
      opacity: 0;
      transform: scale(0.65);
      transition: opacity 140ms ease, transform 140ms ease;
    }

    .gy-service-card.is-selected .gy-check {
      background: var(--gy-pink);
      border-color: var(--gy-pink);
      transform: rotate(3deg);
    }

    .gy-service-card.is-selected .gy-check svg {
      opacity: 1;
      transform: scale(1);
    }

    .gy-number-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px;
      margin-top: 28px;
    }

    .gy-number-card {
      min-height: 118px;
      padding: 18px;
      border: 1px solid var(--gy-border);
      border-radius: 20px;
      background: rgba(255, 255, 255, 0.88);
      box-shadow: 0 12px 28px rgba(74, 46, 61, 0.05);
    }

    .gy-number-card .gy-step {
      margin-top: 0;
    }

    .gy-number-card .gy-step-header {
      margin-bottom: 12px;
    }

    .gy-number-control {
      display: flex;
      align-items: center;
      overflow: hidden;
      border: 1.5px solid var(--gy-border-soft);
      border-radius: 16px;
      background: #fff;
      transition: border-color 160ms ease, box-shadow 160ms ease;
    }

    .gy-number-control:focus-within {
      border-color: rgba(237, 84, 164, 0.72);
      box-shadow: 0 0 0 4px rgba(237, 84, 164, 0.10);
    }

    .gy-number-control input {
      width: 100%;
      min-height: 50px;
      border: 0;
      outline: none;
      background: transparent;
      color: var(--gy-text);
      font-size: 1.5rem;
      font-weight: 850;
      padding: 0 14px;
    }

    .gy-number-suffix {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 50px;
      padding: 0 14px;
      border-left: 1px solid var(--gy-border-soft);
      color: var(--gy-muted);
      font-size: 1.4rem;
      font-weight: 800;
      white-space: nowrap;
    }

    .gy-event-fields {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
    }

    .gy-field {
      display: grid;
      gap: 8px;
    }

    .gy-field label {
      color: var(--gy-text);
      font-size: 1.4rem;
      font-weight: 850;
      letter-spacing: 0.04em;
      text-transform: uppercase;
    }

    .gy-field input,
    .gy-field select {
      width: 100%;
      min-height: 48px;
      border: 1.5px solid var(--gy-border-soft);
      border-radius: 14px;
      background: #fff;
      color: var(--gy-text);
      font-size: 1.4rem;
      font-weight: 650;
      padding: 0 14px;
      outline: none;
      transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
    }

    .gy-field input::placeholder {
      color: #b5adb8;
      font-weight: 500;
    }

    .gy-field input:focus,
    .gy-field select:focus {
      border-color: rgba(237, 84, 164, 0.72);
      box-shadow: 0 0 0 4px rgba(237, 84, 164, 0.10);
      background: #fffafd;
    }

    .gy-summary-card {
      overflow: hidden;
      border: 1px solid var(--gy-border);
      border-radius: 22px;
      background: #fff;
      box-shadow: 0 16px 42px rgba(74, 46, 61, 0.07);
    }

    .gy-summary-header {
      padding: 22px 22px 16px;
      background:
        radial-gradient(circle at right top, rgba(237, 84, 164, 0.12), transparent 11rem),
        linear-gradient(135deg, #ffffff, #fff7fb);
    }

    .gy-summary-title {
      margin: 0;
      color: var(--gy-text);
      font-size: clamp(1.55rem, 2.5vw, 2.5rem);
      line-height: 1;
      letter-spacing: -0.035em;
      font-weight: 900;
    }

    .gy-summary-copy {
      margin: 9px 0 0;
      color: var(--gy-muted);
      font-size: 1.4rem;
      line-height: 1.42;
    }

    .gy-summary-body {
      padding: 18px 22px 22px;
    }

    .gy-stat-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-bottom: 16px;
    }

    .gy-stat {
      padding: 13px;
      border: 1px solid var(--gy-border-soft);
      border-radius: 15px;
      background: #fff;
    }

    .gy-stat-label {
      display: block;
      margin-bottom: 5px;
      color: var(--gy-muted);
      font-size: 0.7rem;
      font-weight: 850;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .gy-stat-value {
      display: block;
      color: var(--gy-text);
      font-size: 1.5rem;
      font-weight: 850;
      line-height: 1;
    }

    .gy-summary-divider {
      height: 1px;
      margin: 16px 0;
      border: 0;
      background: var(--gy-border);
    }

    .gy-summary-subhead {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin: 0 0 11px;
      color: var(--gy-text);
      font-size: 1.4rem;
      font-weight: 850;
    }

    .gy-pill-count {
      display: inline-flex;
      align-items: center;
      min-height: 25px;
      padding: 4px 10px;
      border-radius: 999px;
      background: var(--gy-pink-soft);
      color: var(--gy-pink);
      font-size: 0.76rem;
      font-weight: 850;
    }

    .gy-selected-list {
      display: grid;
      gap: 8px;
      max-height: 178px;
      overflow: auto;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .gy-selected-list li {
      display: flex;
      align-items: center;
      gap: 9px;
      min-height: 34px;
      padding: 8px 10px;
      border: 1px solid var(--gy-border-soft);
      border-radius: 12px;
      background: #fff;
      color: var(--gy-text);
      font-size: 1.4rem;
      font-weight: 750;
      animation: gyFadeUp 160ms ease both;
    }

    .gy-selected-list .gy-empty {
      justify-content: center;
      border-style: dashed;
      color: var(--gy-muted);
      font-style: italic;
      font-weight: 600;
    }

    .gy-benefits {
      display: grid;
      gap: 8px;
      margin: 16px 0 0;
      padding: 0;
      list-style: none;
    }

    .gy-benefits li {
      display: flex;
      align-items: flex-start;
      gap: 8px;
      color: var(--gy-muted);
      font-size: 1.4rem;
      line-height: 1.3;
      font-weight: 600;
    }

    .gy-benefits li::before {
      content: "✓";
      display: inline-grid;
      place-items: center;
      width: 18px;
      height: 18px;
      flex: 0 0 18px;
      margin-top: 1px;
      border-radius: 999px;
      background: var(--gy-mint);
      color: #1d8f68;
      font-size: 1.5rem;
      font-weight: 900;
    }

    .gy-cta-wrap {
      margin-top: 20px;
    }

    .gy-whatsapp-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      width: 100%;
      min-height: 52px;
      padding: 13px 20px;
      border: 0;
      border-radius: 999px;
      background: var(--gy-pink);
      color: #fff;
      font-size: 1.4rem;
      font-weight: 900;
      line-height: 1;
      text-decoration: none;
      box-shadow: 0 14px 26px rgba(237, 84, 164, 0.24);
      cursor: pointer;
      transition: transform 160ms ease, background 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
    }

    .gy-whatsapp-btn svg {
      width: 18px;
      height: 18px;
    }

    .gy-whatsapp-btn:hover {
      transform: translateY(-1px);
      background: var(--gy-pink-dark);
      box-shadow: 0 18px 30px rgba(237, 84, 164, 0.30);
    }

    .gy-whatsapp-btn[aria-disabled="true"] {
      opacity: 0.52;
      cursor: not-allowed;
      pointer-events: none;
      box-shadow: none;
    }

    .gy-footer-note {
      margin: 11px 0 0;
      color: var(--gy-muted);
      font-size: 1.4rem;
      font-weight: 700;
      line-height: 1.35;
      text-align: center;
    }

    .gy-alert {
      display: none;
      margin-top: 11px;
      padding: 10px 12px;
      border-radius: 12px;
      background: var(--gy-gold-soft);
      color: #8a6d1f;
      font-size: 1.5rem;
      font-weight: 800;
      line-height: 1.3;
      text-align: center;
    }

    .gy-alert.is-visible {
      display: block;
    }

    .gy-mobile-bar {
      display: none;
    }

    @keyframes gyFadeUp {
      from {
        opacity: 0;
        transform: translateY(4px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @media (max-width: 980px) {
      .gy-widget-shell {
        grid-template-columns: 1fr;
      }

      .gy-options-panel {
        border-right: 0;
        border-bottom: 1px solid var(--gy-border);
      }

      .gy-summary-sticky {
        position: static;
      }

      .gy-event-fields {
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 720px) {
      .gy-quote-widget {
        width: min(100%, 560px);
        margin: 18px auto 92px;
      }

      .gy-widget-shell {
        border-radius: 22px;
      }

      .gy-service-grid,
      .gy-number-grid {
        grid-template-columns: 1fr;
      }

      .gy-service-card {
        grid-template-columns: 76px minmax(0, 1fr);
      }

      .gy-summary-panel {
        padding-bottom: 24px;
      }

      .gy-mobile-bar {
        position: fixed;
        z-index: 30;
        left: 10px;
        right: 10px;
        bottom: 10px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 10px;
        padding: 10px;
        border: 1px solid var(--gy-border);
        border-radius: 22px;
        background: rgba(255, 255, 255, 0.92);
        box-shadow: 0 18px 44px rgba(56, 38, 48, 0.18);
        backdrop-filter: blur(14px);
      }

      .gy-mobile-summary {
        min-width: 0;
        padding-left: 4px;
      }

      .gy-mobile-summary strong {
        display: block;
        overflow: hidden;
        color: var(--gy-text);
        font-size: 1.5rem;
        font-weight: 900;
        text-overflow: ellipsis;
        white-space: nowrap;
      }

      .gy-mobile-summary span {
        display: block;
        margin-top: 2px;
        color: var(--gy-muted);
        font-size: 1.5rem;
        font-weight: 700;
      }

      .gy-mobile-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 44px;
        padding: 0 15px;
        border-radius: 999px;
        background: var(--gy-pink);
        color: #fff;
        font-size: 1.6rem;
        font-weight: 900;
        text-decoration: none;
        white-space: nowrap;
      }

      .gy-mobile-btn[aria-disabled="true"] {
        opacity: 0.5;
        pointer-events: none;
      }
    }

    @media (max-width: 430px) {

      .gy-options-panel,
      .gy-summary-panel {
        padding: 20px 15px;
      }

      .gy-step-hint {
        margin-left: 0;
      }

      .gy-stat-grid {
        grid-template-columns: 1fr;
      }
    }

    @media (prefers-reduced-motion: reduce) {

      .gy-quote-widget *,
      .gy-quote-widget *::before,
      .gy-quote-widget *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
      }
    }