    :root {
      --pink: #ff9acb;
      --baby-pink: #ffe5f1;
      --hot-pink: #ff4b9c;
      --soft-white: #fff7fb;
      --dark-text: #3a2331;
      --glass-bg: rgba(255, 255, 255, 0.75);
      --shadow-soft: 0 18px 45px rgba(177, 84, 143, 0.25);
      --radius-xl: 24px;
      --radius-lg: 18px;
      --transition-fast: 0.25s ease-out;
    }

    * {
      scroll-behavior: smooth;
      box-sizing: border-box;
    }

    body {
      font-family: "Poppins", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
        sans-serif;
      background: radial-gradient(circle at top left, #ffe7f4, #ffeef9 40%, #ffeaf8 70%, #ffe7f4 100%);
      color: var(--dark-text);
      overflow-x: hidden;
    }

    /* Decorative blobs */
    .bg-blob {
      position: fixed;
      z-index: -1;
      border-radius: 999px;
      filter: blur(40px);
      opacity: 0.7;
      pointer-events: none;
      mix-blend-mode: soft-light;
    }
    .bg-blob.blob-1 {
      width: 420px;
      height: 420px;
      background: radial-gradient(circle, #ffb7dd 0%, #ffe5f1 60%, transparent 100%);
      top: -80px;
      left: -80px;
      animation: float 12s ease-in-out infinite alternate;
    }
    .bg-blob.blob-2 {
      width: 380px;
      height: 380px;
      background: radial-gradient(circle, #ffc2e5 0%, #ffe5f1 55%, transparent 100%);
      bottom: -60px;
      right: -60px;
      animation: float 16s ease-in-out infinite alternate-reverse;
    }
    .bg-blob.blob-3 {
      width: 280px;
      height: 280px;
      background: radial-gradient(circle, #ffd6f0 0%, #ffeef9 50%, transparent 100%);
      top: 40%;
      left: 60%;
      animation: slow-spin 24s linear infinite;
    }

    @keyframes float {
      from {
        transform: translate3d(0, 0, 0) scale(1);
      }
      to {
        transform: translate3d(40px, 40px, 0) scale(1.1);
      }
    }
    @keyframes slow-spin {
      from {
        transform: translate(-50%, -50%) rotate(0deg);
      }
      to {
        transform: translate(-50%, -50%) rotate(360deg);
      }
    }

    /* Navbar */
    .navbar {
      backdrop-filter: blur(20px);
      background: linear-gradient(
        135deg,
        rgba(255, 247, 251, 0.86),
        rgba(255, 207, 232, 0.86)
      );
      box-shadow: 0 10px 30px rgba(177, 84, 143, 0.12);
    }

    /* Location strip */
    .location-strip {
      margin-top: 4rem;
      padding: 0.4rem 1rem;
      text-align: center;
      font-size: 0.78rem;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      background: linear-gradient(90deg, #ffe5f6, #ffd0ec);
      color: #a54076;
      border-bottom: 1px solid rgba(255, 155, 207, 0.6);
      z-index: 1;
    }

    .navbar-brand span {
      font-weight: 700;
      letter-spacing: 0.12em;
      font-size: 0.8rem;
      text-transform: uppercase;
      color: var(--hot-pink);
    }

    .navbar-brand strong {
      display: block;
      font-size: 1.1rem;
      margin-top: -4px;
      color: var(--dark-text);
    }

    .nav-link {
      font-weight: 500;
      color: #7b546a !important;
      position: relative;
      padding: 0.3rem 0 !important;
      margin: 0 0.7rem;
    }

    .nav-link::after {
      content: "";
      position: absolute;
      left: 0;
      bottom: -4px;
      width: 0;
      height: 2px;
      border-radius: 999px;
      background: linear-gradient(90deg, var(--pink), var(--hot-pink));
      transition: width var(--transition-fast);
    }

    .nav-link:hover::after,
    .nav-link.active::after {
      width: 100%;
    }

    .btn-pill {
      border-radius: 999px;
      padding: 0.45rem 1.3rem;
      font-weight: 500;
      font-size: 0.9rem;
      box-shadow: 0 12px 30px rgba(255, 75, 156, 0.25);
      border: none;
      background: linear-gradient(135deg, var(--hot-pink), #ff8fc4);
      color: #fff;
    }
    .btn-pill:hover {
      filter: brightness(1.05);
      transform: translateY(-1px);
    }

    /* Hero */
    #hero {
      padding-top: 6.5rem;
      padding-bottom: 5rem;
      position: relative;
    }

    .hero-badge {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      padding: 0.25rem 0.7rem;
      border-radius: 999px;
      background: rgba(255, 247, 251, 0.95);
      box-shadow: 0 10px 25px rgba(177, 84, 143, 0.18);
      font-size: 0.78rem;
      text-transform: uppercase;
      letter-spacing: 0.14em;
      color: #9f5c80;
      margin-bottom: 1rem;
    }

    .hero-badge-dot {
      width: 9px;
      height: 9px;
      border-radius: 999px;
      background: radial-gradient(circle, #5cffcc, #00a87d);
      box-shadow: 0 0 10px rgba(0, 168, 125, 0.9);
    }

    .hero-title {
      font-size: clamp(2.4rem, 4vw, 3.4rem);
      font-weight: 700;
      line-height: 1.08;
      color: var(--dark-text);
      margin-bottom: 1rem;
    }

    .hero-title span {
      background: linear-gradient(90deg, var(--hot-pink), #ff8fc4);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    .hero-subtitle {
      font-size: 1rem;
      max-width: 30rem;
      color: #7d5c71;
      margin-bottom: 1.7rem;
    }

    .hero-metadata {
      display: flex;
      flex-wrap: wrap;
      gap: 1.2rem;
      font-size: 0.82rem;
      margin-top: 1.5rem;
      color: #8d667d;
    }

    .hero-metadata span {
      display: inline-flex;
      align-items: center;
      gap: 0.45rem;
    }

    .hero-metadata i {
      display: inline-flex;
      justify-content: center;
      align-items: center;
      width: 20px;
      height: 20px;
      border-radius: 999px;
      background: #ffe5f1;
      color: #ff4b9c;
      font-size: 0.7rem;
    }

    /* Hero carousel glass container */
    .hero-carousel-wrapper {
      position: relative;
      border-radius: var(--radius-xl);
      padding: 0.55rem;
      background: linear-gradient(145deg, #fff5fb, #ffd6f0);
      box-shadow: var(--shadow-soft);
      overflow: hidden;
    }

    .hero-carousel-inner {
      border-radius: calc(var(--radius-xl) - 8px);
      overflow: hidden;
      background: radial-gradient(circle at top, #ffe9f5, #ffcee8);
    }

    .carousel-item {
      position: relative;
      min-height: 360px;
      max-height: 480px;
    }

    .carousel-img-cover {
      position: absolute;
      inset: 0;
      background-size: cover;
      background-position: center;
      filter: saturate(1.1) contrast(1.05);
      transform: scale(1.05);
    }

    .carousel-gradient-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(
        135deg,
        rgba(25, 8, 16, 0.68),
        rgba(80, 5, 39, 0.55),
        rgba(255, 159, 206, 0.1)
      );
    }

    .carousel-caption-custom {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      padding: 2.4rem 2.2rem;
      color: #fff;
      text-align: left;
      text-shadow: 0 12px 30px rgba(0, 0, 0, 0.55);
    }

    .carousel-caption-custom h5 {
      font-size: 1.4rem;
      margin-bottom: 0.2rem;
      font-weight: 600;
    }

    .carousel-caption-custom p {
      font-size: 0.9rem;
      margin-bottom: 0.35rem;
      opacity: 0.95;
    }

    .carousel-tag {
      display: inline-flex;
      padding: 0.2rem 0.7rem;
      border-radius: 999px;
      border: 1px solid rgba(255, 255, 255, 0.7);
      font-size: 0.7rem;
      font-weight: 500;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      margin-bottom: 0.7rem;
    }

    .carousel-indicators [data-bs-target] {
      width: 9px;
      height: 9px;
      border-radius: 999px;
      background-color: rgba(255, 255, 255, 0.9);
      opacity: 0.5;
      border: none;
    }

    .carousel-indicators .active {
      width: 26px;
      opacity: 1;
      background: linear-gradient(90deg, #ffb4da, #ffe0f2);
    }

    .carousel-control-prev-icon,
    .carousel-control-next-icon {
      filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.35));
    }

    .carousel-floating-badge {
      position: absolute;
      top: 18px;
      right: 18px;
      background: rgba(255, 255, 255, 0.9);
      color: #8e4f6f;
      border-radius: 999px;
      padding: 0.2rem 0.8rem;
      font-size: 0.75rem;
      backdrop-filter: blur(14px);
    }

    .carousel-floating-badge strong {
      color: #ff4b9c;
    }

    /* Sections */
    section {
      padding: 5rem 0 4rem;
      position: relative;
      z-index: 1;
    }

    /* Parallax teaser section */
    #parallax-intro {
      padding: 6rem 0;
      background-image: url("https://images.pexels.com/photos/5704100/pexels-photo-5704100.jpeg?auto=compress&cs=tinysrgb&w=1600");
      background-size: cover;
      background-position: center;
      background-attachment: fixed;
      position: relative;
      color: #ffe9f8;
    }

    #parallax-intro::before {
      content: "";
      position: absolute;
      inset: 0;
      background: radial-gradient(circle at top, rgba(255, 144, 221, 0.5), rgba(5, 0, 5, 0.92));
      mix-blend-mode: multiply;
    }

    #parallax-intro .parallax-content {
      position: relative;
      text-align: center;
      max-width: 620px;
      margin: 0 auto;
    }

    #parallax-intro h2 {
      font-size: 2.1rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
    }

    #parallax-intro p {
      font-size: 0.95rem;
      margin-top: 0.7rem;
      color: #ffd6f0;
    }

    .section-label {
      display: inline-flex;
      justify-content: center;
      align-items: center;
      padding: 0.22rem 0.9rem;
      border-radius: 999px;
      background: rgba(255, 247, 251, 0.95);
      border: 1px solid rgba(255, 190, 224, 0.8);
      color: #b76a8f;
      font-size: 0.75rem;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      margin-bottom: 0.7rem;
    }

    .section-title {
      font-size: 1.7rem;
      font-weight: 600;
      margin-bottom: 0.6rem;
      color: var(--dark-text);
    }

    .section-subtitle {
      max-width: 30rem;
      font-size: 0.92rem;
      color: #876076;
    }

    /* Glass cards */
    .glass-card {
      background: var(--glass-bg);
      border-radius: var(--radius-lg);
      box-shadow: var(--shadow-soft);
      border: 1px solid rgba(255, 210, 233, 0.9);
      padding: 1.5rem 1.4rem;
      position: relative;
      overflow: hidden;
      transition: transform var(--transition-fast), box-shadow var(--transition-fast), border var(--transition-fast);
    }
    .glass-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 22px 55px rgba(177, 84, 143, 0.32);
      border-color: rgba(255, 155, 207, 0.9);
    }

    .glass-card-tag {
      position: absolute;
      top: 0.9rem;
      right: 1.1rem;
      font-size: 0.7rem;
      background: rgba(255, 255, 255, 0.9);
      padding: 0.15rem 0.7rem;
      border-radius: 999px;
      color: #b0517e;
    }

    .glass-card-heading {
      font-size: 1.02rem;
      font-weight: 600;
      margin-bottom: 0.35rem;
      color: var(--dark-text);
    }

    .glass-card-body {
      font-size: 0.88rem;
      color: #7e5b72;
      margin-bottom: 0.75rem;
    }

    .glass-pill-list {
      display: flex;
      flex-wrap: wrap;
      gap: 0.4rem;
      margin-bottom: 0.3rem;
    }

    .glass-pill {
      padding: 0.18rem 0.6rem;
      border-radius: 999px;
      font-size: 0.75rem;
      background: #ffe5f1;
      color: #b15780;
    }

    /* Companion cards */
    .companion-card {
      border-radius: var(--radius-lg);
      overflow: hidden;
      background: radial-gradient(circle at top, #ffe9f6, #ffe5f1 55%);
      border: 1px solid rgba(255, 185, 220, 0.9);
      box-shadow: var(--shadow-soft);
      transition: transform var(--transition-fast), box-shadow var(--transition-fast);
      position: relative;
    }
    .companion-card:hover {
      transform: translateY(-8px) scale(1.01);
      box-shadow: 0 24px 60px rgba(177, 84, 143, 0.4);
    }

    .companion-img {
      position: relative;
      height: 260px;
      background-size: cover;
      background-position: center;
    }

    .companion-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(48, 12, 26, 0.78), rgba(0, 0, 0, 0.05));
    }

    .companion-meta {
      position: absolute;
      left: 1.1rem;
      right: 1.1rem;
      bottom: 1rem;
      color: #fff;
      text-shadow: 0 14px 28px rgba(0, 0, 0, 0.7);
    }

    .companion-name {
      font-size: 1.12rem;
      font-weight: 600;
    }
    .companion-pill {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      padding: 0.18rem 0.7rem;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.16);
      font-size: 0.72rem;
      margin-right: 0.4rem;
      backdrop-filter: blur(14px);
    }
    .companion-pill-dot {
      width: 8px;
      height: 8px;
      border-radius: 999px;
      background: radial-gradient(circle, #ffdfef, #ff8fc4);
    }

    .companion-body {
      padding: 0.9rem 1.1rem 1.1rem;
      font-size: 0.86rem;
      color: #7a5269;
    }

    .companion-meta-bar {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-top: 0.6rem;
      font-size: 0.8rem;
      color: #915c79;
    }

    .companion-rating {
      display: inline-flex;
      gap: 0.15rem;
      color: #ffb55b;
    }

    /* Testimonial / Timeline */
    .timeline {
      position: relative;
      margin-top: 1.4rem;
    }

    .timeline::before {
      content: "";
      position: absolute;
      left: 1rem;
      top: 0;
      bottom: 0;
      width: 2px;
      border-radius: 999px;
      background: linear-gradient(to bottom, #ffc5e3, #ff8fc4);
      opacity: 0.7;
    }

    .timeline-item {
      position: relative;
      padding-left: 2.4rem;
      margin-bottom: 1.4rem;
    }

    .timeline-point {
      position: absolute;
      left: 0.55rem;
      top: 0.3rem;
      width: 11px;
      height: 11px;
      border-radius: 999px;
      background: #fff;
      border: 2px solid #ff8fc4;
      box-shadow: 0 0 12px rgba(255, 143, 196, 0.6);
    }

    .timeline-item h6 {
      font-size: 0.9rem;
      margin-bottom: 0.2rem;
      font-weight: 600;
      color: var(--dark-text);
    }

    .timeline-item p {
      font-size: 0.8rem;
      color: #8a6277;
      margin-bottom: 0.1rem;
    }

    .timeline-item small {
      font-size: 0.74rem;
      color: #b06a8f;
      text-transform: uppercase;
      letter-spacing: 0.14em;
    }

    /* Contact form */
    #contact-form-card {
      border-radius: var(--radius-xl);
      background: linear-gradient(
        135deg,
        rgba(255, 247, 252, 0.94),
        rgba(255, 208, 233, 0.94)
      );
      box-shadow: 0 22px 60px rgba(177, 84, 143, 0.35);
      border: 1px solid rgba(255, 190, 224, 0.9);
      padding: 2rem 1.7rem;
    }

    .form-control,
    .form-select {
      border-radius: 999px;
      border: 1px solid #ffd0e8;
      background: rgba(255, 255, 255, 0.9);
      font-size: 0.85rem;
      padding: 0.6rem 0.9rem;
    }

    .form-control:focus,
    .form-select:focus {
      box-shadow: 0 0 0 0.1rem rgba(255, 148, 202, 0.35);
      border-color: #ff8fc4;
    }

    textarea.form-control {
      border-radius: 16px;
      min-height: 100px;
      resize: vertical;
    }

    .badge-soft {
      display: inline-flex;
      align-items: center;
      padding: 0.25rem 0.7rem;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.9);
      font-size: 0.75rem;
      color: #a55c83;
    }

    /* Floating CTA button */
    .floating-cta {
      position: fixed;
      right: 1.6rem;
      bottom: 1.6rem;
      z-index: 50;
    }

    .floating-cta .btn-pill {
      box-shadow: 0 18px 40px rgba(255, 75, 156, 0.5);
      padding-inline: 1.6rem;
    }

    /* Footer */
    footer {
      padding: 1.7rem 0 2.2rem;
      font-size: 0.78rem;
      color: #8e667f;
    }

    .footer-links a {
      text-decoration: none;
      color: #a76b8e;
      margin-right: 1.1rem;
      font-size: 0.78rem;
    }
    .footer-links a:hover {
      color: #ff4b9c;
    }

    /* Small animations */
    .soft-pulse {
      animation: soft-pulse 3s ease-in-out infinite;
    }
    @keyframes soft-pulse {
      0%, 100% {
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(255, 75, 156, 0.4);
      }
      50% {
        transform: scale(1.02);
        box-shadow: 0 0 0 12px rgba(255, 75, 156, 0);
      }
    }

    /* Media queries */
    @media (max-width: 991.98px) {
      #hero {
        padding-top: 5.5rem;
      }
      .hero-carousel-wrapper {
        margin-top: 2.2rem;
      }
      .carousel-caption-custom {
        padding: 1.7rem 1.4rem 1.5rem;
      }
    }

    @media (max-width: 575.98px) {
      section {
        padding-top: 3.7rem;
        padding-bottom: 3.4rem;
      }
      .hero-title {
        font-size: 2.15rem;
      }
      .hero-subtitle {
        max-width: 100%;
      }
      .hero-carousel-wrapper {
        border-radius: 22px;
      }
    }