/* ============================================================
   Tours · Travel SIM · Italy invitation form
============================================================ */

/* ============================================================
   TOURS
============================================================ */
    /* ============================================================
       TOURS — Premium tour package cards
    ============================================================ */
    #tours {
      background: linear-gradient(180deg, #fff 0%, #F8FAFF 100%);
    }

.tgrid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 28px;
    }

.tcard {
      position: relative;
      background: #fff;
      border-radius: 24px;
      overflow: hidden;
      border: 1px solid var(--gray-150);
      cursor: pointer;
      display: flex;
      flex-direction: column;
      box-shadow: 0 8px 28px rgba(15, 26, 46, 0.08);
      transition: transform 0.4s var(--ease-spring), box-shadow 0.4s ease, border-color var(--t);
    }

.tcard:hover {
      transform: translateY(-10px);
      box-shadow: 0 28px 64px rgba(15, 26, 46, 0.18);
      border-color: transparent;
    }

/* Image container with rich gradient overlay */
    .tcard-img {
      position: relative;
      height: 200px;
      overflow: hidden;
      flex-shrink: 0;
    }

.tcard-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.7s ease;
    }

.tcard:hover .tcard-img img {
      transform: scale(1.08);
    }

.tcard-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top,
        rgba(4, 13, 31, 0.85) 0%,
        rgba(4, 13, 31, 0.20) 50%,
        rgba(4, 13, 31, 0.05) 100%);
    }

/* Top-left tag (popular / new / premium) */
    .tcard-badge {
      position: absolute;
      top: 16px;
      left: 16px;
      z-index: 2;
    }

.tcard-badge .tag {
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border: 1px solid rgba(255, 255, 255, 0.30);
      font-weight: 800;
      padding: 5px 12px;
    }

/* Floating price tag — top-right of image */
    .tcard-price-tag {
      position: absolute;
      top: 16px;
      right: 16px;
      z-index: 2;
      background: rgba(255, 255, 255, 0.97);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-radius: 14px;
      padding: 10px 16px;
      text-align: right;
      box-shadow: 0 10px 28px rgba(0, 0, 0, 0.20);
    }

.tcard-price-tag-label {
      font-size: 9px;
      color: var(--gray-500);
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      font-family: 'Sora', sans-serif;
    }

.tcard-price-tag-num {
      font-family: 'Sora', sans-serif;
      font-size: 18px;
      font-weight: 800;
      color: var(--blue);
      line-height: 1.05;
      letter-spacing: -0.02em;
      margin-top: 2px;
    }

/* Bottom of image — country eyebrow + tour name */
    .tcard-bottom {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      padding: 24px;
      z-index: 2;
    }

.tcard-country {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 11px;
      color: rgba(255, 255, 255, 0.85);
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      margin-bottom: 8px;
      font-family: 'Sora', sans-serif;
    }

.tcard-country i {
      color: var(--amber);
    }

.tcard-name {
      font-family: 'Sora', sans-serif;
      font-size: 22px;
      font-weight: 800;
      color: #fff;
      letter-spacing: -0.02em;
      line-height: 1.2;
    }

/* Body — features + desc + inclusion list + CTA */
    .tcard-body {
      padding: 24px;
      display: flex;
      flex-direction: column;
      flex: 1;
    }

/* 3-column features strip (duration / group / package type) */
    .tcard-features {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 6px;
      padding: 14px 12px;
      background: var(--blue-pale);
      border: 1px solid var(--blue-pale2);
      border-radius: 14px;
      margin-bottom: 16px;
    }

.tcard-feat {
      text-align: center;
      padding: 0 4px;
      border-right: 1px solid rgba(37, 99, 235, 0.12);
    }

.tcard-feat:last-child {
      border-right: none;
    }

.tcard-feat-icon {
      color: var(--blue);
      font-size: 13px;
      margin-bottom: 4px;
    }

.tcard-feat-num {
      font-family: 'Sora', sans-serif;
      font-size: 13px;
      font-weight: 800;
      color: var(--gray-900);
      line-height: 1.1;
      letter-spacing: -0.01em;
    }

.tcard-feat-label {
      font-size: 9px;
      color: var(--gray-500);
      font-weight: 700;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      margin-top: 2px;
      font-family: 'Sora', sans-serif;
    }

.tcard-desc {
      font-size: 13.5px;
      color: var(--gray-600);
      line-height: 1.65;
      margin-bottom: 18px;
    }

/* Inclusion checklist (what's included) */
    .tcard-incl {
      display: flex;
      flex-direction: column;
      gap: 8px;
      margin-bottom: 22px;
    }

.tcard-incl-item {
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: 12.5px;
      color: var(--gray-700);
      font-weight: 500;
      line-height: 1.4;
    }

.tcard-incl-item .icheck {
      width: 18px;
      height: 18px;
      flex-shrink: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: rgba(5, 150, 105, 0.12);
      color: var(--emerald);
      border-radius: 50%;
      font-size: 8px;
    }

/* Footer with CTA button (full width, prominent) */
    .tcard-foot {
      margin-top: auto;
      display: flex;
      gap: 10px;
      padding-top: 16px;
      border-top: 1px solid var(--gray-100);
    }

.tcard-book {
      flex: 1;
      padding: 13px 18px;
      background: var(--amber);
      color: #fff;
      border-radius: 12px;
      font-size: 13px;
      font-weight: 700;
      border: none;
      cursor: pointer;
      transition: transform var(--t), background var(--t), box-shadow var(--t);
      font-family: 'Sora', sans-serif;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      box-shadow: 0 6px 18px rgba(245, 158, 11, 0.30);
      letter-spacing: 0.01em;
    }

.tcard-book:hover {
      background: var(--amber-dark);
      transform: translateY(-2px);
      box-shadow: 0 10px 24px rgba(245, 158, 11, 0.45);
    }

.tcard-detail {
      width: 48px;
      height: 48px;
      border-radius: 12px;
      background: var(--gray-50);
      border: 1.5px solid var(--gray-200);
      color: var(--blue);
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: var(--t);
      font-size: 14px;
    }

.tcard-detail:hover {
      background: var(--blue);
      color: #fff;
      border-color: var(--blue);
    }

/* Responsive */
    

    

    

    /* ============================================================
   TRAVEL SIM
============================================================ */
    #travel-sim {
      background: linear-gradient(135deg, #0891B2 0%, #0EA5E9 50%, #2563EB 100%);
      position: relative;
      overflow: hidden;
    }

.sim-layout {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: center
    }

.sim-badge {
      background: rgba(255, 255, 255, 0.2);
      color: #fff;
      border-color: rgba(255, 255, 255, 0.3)
    }

.sim-left h2 {
      color: #fff;
      margin: 16px 0
    }

.sim-left p {
      color: rgba(255, 255, 255, 0.75);
      font-size: 16px;
      line-height: 1.75;
      margin-bottom: 30px
    }

.sim-feats {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin-bottom: 32px
    }

.sfeat {
      background: rgba(255, 255, 255, 0.12);
      border: 1px solid rgba(255, 255, 255, 0.18);
      border-radius: var(--r);
      padding: 14px 16px;
      display: flex;
      align-items: center;
      gap: 11px;
    }

.sfeat i {
      color: #fff;
      font-size: 16px;
      width: 20px;
      text-align: center
    }

.sfeat span {
      color: #fff;
      font-size: 13px;
      font-weight: 600;
      font-family: 'Sora', sans-serif
    }

.sim-card {
      background: rgba(255, 255, 255, 0.12);
      backdrop-filter: blur(20px);
      border: 1px solid rgba(255, 255, 255, 0.2);
      border-radius: var(--r-xl);
      padding: 32px;
    }

.sim-card h3 {
      color: #fff;
      font-size: 22px;
      margin-bottom: 22px;
      font-family: 'Sora', sans-serif
    }

.sim-plans {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-bottom: 22px
    }

.splan {
      background: rgba(255, 255, 255, 0.09);
      border: 2px solid rgba(255, 255, 255, 0.15);
      border-radius: var(--r);
      padding: 15px 18px;
      cursor: pointer;
      transition: var(--t);
      display: flex;
      justify-content: space-between;
      align-items: center;
    }

.splan:hover,
    .splan.sel {
      background: rgba(255, 255, 255, 0.22);
      border-color: rgba(255, 255, 255, 0.55)
    }

.splan-name {
      font-size: 14px;
      font-weight: 700;
      color: #fff;
      font-family: 'Sora', sans-serif
    }

.splan-data {
      font-size: 11px;
      color: rgba(255, 255, 255, 0.65)
    }

.splan-price {
      font-size: 22px;
      font-weight: 800;
      color: var(--amber);
      font-family: 'Sora', sans-serif
    }

/* ============================================================
   ITALY INVITATION
============================================================ */
    #italy-invite {
      background: var(--gray-50)
    }

.italy-layout {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: start
    }

.italy-left h2 {
      margin: 16px 0
    }

.italy-left p {
      color: var(--gray-500);
      font-size: 16px;
      line-height: 1.75;
      margin-bottom: 28px
    }

.italy-steps {
      display: flex;
      flex-direction: column;
      gap: 0
    }

.istep {
      display: flex;
      gap: 20px;
      padding-bottom: 28px;
      position: relative
    }

.istep:not(:last-child)::after {
      content: '';
      position: absolute;
      left: 18px;
      top: 44px;
      bottom: 0;
      width: 2px;
      background: linear-gradient(to bottom, var(--blue-pale2), transparent);
    }

.istep-num {
      width: 38px;
      height: 38px;
      border-radius: 50%;
      background: var(--blue);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      font-weight: 800;
      flex-shrink: 0;
      font-family: 'Sora', sans-serif;
    }

.istep h4 {
      font-size: 15px;
      font-weight: 700;
      margin-bottom: 5px;
      color: var(--gray-900);
      font-family: 'Sora', sans-serif
    }

.istep p {
      font-size: 13px;
      color: var(--gray-500);
      line-height: 1.6
    }

.iform {
      background: #fff;
      border: 1px solid var(--gray-150);
      border-radius: var(--r-xl);
      padding: 36px;
      box-shadow: var(--shadow);
    }

.iform h3 {
      font-size: 22px;
      margin-bottom: 24px;
      color: var(--gray-900);
      font-family: 'Sora', sans-serif
    }

.fg {
      margin-bottom: 15px
    }

.fl {
      font-size: 11px;
      font-weight: 700;
      color: var(--blue);
      letter-spacing: 0.07em;
      text-transform: uppercase;
      margin-bottom: 6px;
      display: block;
      font-family: 'Sora', sans-serif;
      display: flex;
      align-items: center;
      gap: 6px
    }

.fl i {
      font-size: 10px
    }

.fi {
      width: 100%;
      background: var(--gray-50);
      border: 1.5px solid var(--gray-200);
      border-radius: var(--r-sm);
      padding: 12px 15px;
      font-family: 'Instrument Sans', sans-serif;
      font-size: 14px;
      color: var(--gray-900);
      outline: none;
      transition: border-color var(--t);
    }

.fi:focus {
      border-color: var(--blue);
      background: #fff;
      box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.08)
    }

.fi::placeholder {
      color: var(--gray-400)
    }

.fg-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px
    }

.fsub {
      width: 100%;
      padding: 14px;
      border-radius: var(--r-sm);
      background: var(--blue);
      color: #fff;
      border: none;
      cursor: pointer;
      font-family: 'Sora', sans-serif;
      font-size: 15px;
      font-weight: 700;
      transition: var(--t);
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
    }

.fsub:hover {
      background: var(--blue-deep);
      transform: translateY(-2px);
      box-shadow: var(--shadow-blue)
    }
