    :root {
      --ipp-navy: #071C36;
      --ipp-navy-soft: #0D2848;
      --ipp-gold: #C8A45D;
      --ipp-gold-soft: #E3C47B;
      --ipp-cream: #FAFAF7;
      --ipp-ink: #121820;
      --ipp-muted: #69717C;
      --ipp-border: rgba(200, 164, 93, .28);
      --ipp-shadow: 0 24px 70px rgba(7, 28, 54, .16);
    }

    html {
      scroll-behavior: smooth;
      scroll-padding-top: 90px;
    }

    body {
      font-family: 'Montserrat', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
      color: var(--ipp-ink);
      background: var(--ipp-cream);
      overflow-x: hidden;
    }

    ::selection {
      background: var(--ipp-gold);
      color: #fff;
    }

    .font-luxury {
      font-family: 'Cinzel', Georgia, serif;
      letter-spacing: .18em;
    }

    .text-gold { color: var(--ipp-gold); }
    .bg-navy { background: var(--ipp-navy); }

    .section-padding {
      padding: 110px 0;
    }

    .section-kicker {
      font-size: .76rem;
      letter-spacing: .26em;
      text-transform: uppercase;
      color: var(--ipp-gold);
      font-weight: 700;
      margin-bottom: 1rem;
    }

    .section-title {
      font-family: 'Cinzel', Georgia, serif;
      letter-spacing: .08em;
      color: var(--ipp-navy);
      font-weight: 500;
      line-height: 1.15;
    }

    .section-line {
      width: 74px;
      height: 1px;
      background: var(--ipp-gold);
      margin: 1.4rem 0 1.6rem;
    }

    .navbar {
      background: rgba(250, 250, 247, .92);
      backdrop-filter: blur(18px);
      border-bottom: 1px solid rgba(7, 28, 54, .08);
      transition: all .3s ease;
    }

    .navbar.scrolled {
      box-shadow: 0 12px 36px rgba(7, 28, 54, .08);
    }

    .navbar-brand {
      font-family: 'Cinzel', Georgia, serif;
      letter-spacing: .18em;
      font-weight: 600;
      color: var(--ipp-navy) !important;
      font-size: 1rem;
    }

    .navbar-brand span {
      display: block;
      font-family: 'Montserrat', sans-serif;
      letter-spacing: .24em;
      font-size: .55rem;
      color: var(--ipp-gold);
      margin-top: .08rem;
    }

    .navbar-brand-with-icon {
      display: inline-flex;
      align-items: center;
      gap: 12px;
    }
    
    .navbar-brand-icon {
      width: auto;
      height: 42px;
      object-fit: contain;
      flex: 0 0 auto;
    }
    
    .navbar-brand-copy {
      line-height: 1.15;
    }

    .nav-link {
      color: var(--ipp-navy) !important;
      font-size: .78rem;
      text-transform: uppercase;
      letter-spacing: .12em;
      font-weight: 600;
      position: relative;
      margin-left: .6rem;
    }

    .nav-link::after {
      content: '';
      position: absolute;
      left: .5rem;
      right: .5rem;
      bottom: .2rem;
      height: 1px;
      background: var(--ipp-gold);
      transform: scaleX(0);
      transform-origin: right;
      transition: transform .28s ease;
    }

    .nav-link:hover::after,
    .nav-link.active::after {
      transform: scaleX(1);
      transform-origin: left;
    }

    .hero {
      min-height: 100vh;
      position: relative;
      background: var(--ipp-navy);
      color: white;
    }

    .hero .carousel,
    .hero .carousel-inner,
    .hero .carousel-item {
      min-height: 100vh;
    }

    .hero-slide {
      min-height: 100vh;
      display: flex;
      align-items: center;
      position: relative;
      background-size: cover;
      background-position: center;
    }

    .hero-slide::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        linear-gradient(90deg, rgba(7, 28, 54, .92) 0%, rgba(7, 28, 54, .72) 45%, rgba(7, 28, 54, .28) 100%),
        radial-gradient(circle at 20% 40%, rgba(200, 164, 93, .22), transparent 32%);
    }

    .slide-1 {
      background-image: url('../img/hero-01.jpg');
    }

    .slide-2 {
      background-image: url('../img/hero-02.jpg');
    }

    .slide-3 {
      background-image: url('../img/hero-03.jpg');
    }

    .hero-content {
      position: relative;
      z-index: 2;
      padding-top: 92px;
    }

    .hero-logo-mark {
      width: 88px;
      height: 88px;
      border: 1px solid var(--ipp-border);
      display: grid;
      place-items: center;
      margin-bottom: 2rem;
      position: relative;
    }

    .hero-logo-mark::before {
      content: '';
      position: absolute;
      inset: 12px -12px -12px 12px;
      border-right: 3px solid var(--ipp-gold);
      border-bottom: 3px solid var(--ipp-gold);
      opacity: .85;
    }

    .hero-logo-mark span {
      font-family: 'Cinzel', Georgia, serif;
      color: var(--ipp-gold);
      font-size: 3rem;
      line-height: 1;
    }

    .hero-title {
      font-family: 'Cinzel', Georgia, serif;
      font-size: clamp(2.6rem, 7vw, 6.8rem);
      letter-spacing: .16em;
      line-height: .98;
      text-transform: uppercase;
      margin-bottom: 1.5rem;
    }

    .hero-title small {
      display: block;
      color: var(--ipp-gold);
      font-size: .32em;
      letter-spacing: .48em;
      margin-top: 1.2rem;
    }

    .hero-lead {
      max-width: 720px;
      color: rgba(255, 255, 255, .83);
      font-size: clamp(1rem, 1.5vw, 1.2rem);
      line-height: 1.8;
    }

    .btn-gold {
      background: var(--ipp-gold);
      border-color: var(--ipp-gold);
      color: var(--ipp-navy);
      border-radius: 0;
      padding: .95rem 1.45rem;
      font-weight: 700;
      letter-spacing: .12em;
      text-transform: uppercase;
      font-size: .76rem;
    }

    .btn-gold:hover {
      background: var(--ipp-gold-soft);
      border-color: var(--ipp-gold-soft);
      color: var(--ipp-navy);
      transform: translateY(-2px);
    }

    .btn-outline-luxury {
      border: 1px solid rgba(255,255,255,.55);
      color: #fff;
      border-radius: 0;
      padding: .95rem 1.45rem;
      font-weight: 700;
      letter-spacing: .12em;
      text-transform: uppercase;
      font-size: .76rem;
    }

    .btn-outline-luxury:hover {
      border-color: var(--ipp-gold);
      background: rgba(200, 164, 93, .12);
      color: #fff;
      transform: translateY(-2px);
    }

    .hero-info-card {
      position: absolute;
      right: 4vw;
      bottom: 4vw;
      z-index: 3;
      background: rgba(250, 250, 247, .96);
      color: var(--ipp-navy);
      padding: 1.5rem;
      max-width: 350px;
      border-left: 4px solid var(--ipp-gold);
      box-shadow: var(--ipp-shadow);
    }

    .hero-info-card .label {
      color: var(--ipp-gold);
      text-transform: uppercase;
      letter-spacing: .18em;
      font-size: .72rem;
      font-weight: 700;
    }

    .carousel-indicators [data-bs-target] {
      width: 42px;
      height: 2px;
      background-color: var(--ipp-gold);
    }

    .about-img-wrap {
      position: relative;
      padding: 1rem;
      border: 1px solid var(--ipp-border);
    }

    .about-img-wrap::before {
      content: '';
      position: absolute;
      right: -22px;
      bottom: -22px;
      width: 52%;
      height: 62%;
      border-right: 4px solid var(--ipp-gold);
      border-bottom: 4px solid var(--ipp-gold);
      z-index: 0;
    }

    .about-img-wrap img {
      position: relative;
      z-index: 1;
      width: 100%;
      min-height: 520px;
      object-fit: cover;
      filter: saturate(.94) contrast(1.05);
    }

    .signature-card {
      background: white;
      border: 1px solid rgba(7, 28, 54, .08);
      box-shadow: var(--ipp-shadow);
      padding: 2rem;
    }

    .stat-number {
      font-family: 'Cinzel', Georgia, serif;
      color: var(--ipp-gold);
      font-size: 2.4rem;
      line-height: 1;
    }

    .service-card {
      background: white;
      border: 1px solid rgba(7, 28, 54, .08);
      padding: 2.2rem;
      height: 100%;
      transition: all .28s ease;
      position: relative;
      overflow: hidden;
    }

    .service-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 3px;
      background: var(--ipp-gold);
      transform: scaleX(.24);
      transform-origin: left;
      transition: transform .28s ease;
    }

    .service-card:hover {
      transform: translateY(-8px);
      box-shadow: var(--ipp-shadow);
    }

    .service-card:hover::before {
      transform: scaleX(1);
    }

    .service-icon {
      width: 54px;
      height: 54px;
      display: grid;
      place-items: center;
      border: 1px solid var(--ipp-border);
      color: var(--ipp-gold);
      font-size: 1.45rem;
      margin-bottom: 1.4rem;
    }

    .portfolio-card {
      position: relative;
      min-height: 420px;
      overflow: hidden;
      background: var(--ipp-navy);
      color: white;
    }

    .portfolio-card img {
      width: 100%;
      height: 100%;
      min-height: 420px;
      object-fit: cover;
      opacity: .72;
      transition: transform .45s ease, opacity .45s ease;
    }

    .portfolio-card:hover img {
      transform: scale(1.06);
      opacity: .52;
    }

    .portfolio-overlay {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: 2rem;
      background: linear-gradient(180deg, transparent 20%, rgba(7, 28, 54, .88) 100%);
    }

    .process-step {
      display: flex;
      gap: 1.2rem;
      padding: 1.5rem 0;
      border-bottom: 1px solid rgba(255,255,255,.12);
    }

    .process-number {
      min-width: 46px;
      height: 46px;
      border: 1px solid var(--ipp-gold);
      color: var(--ipp-gold);
      display: grid;
      place-items: center;
      font-family: 'Cinzel', Georgia, serif;
    }

    .area-chip {
      display: inline-flex;
      align-items: center;
      gap: .55rem;
      padding: .8rem 1rem;
      margin: .35rem;
      border: 1px solid var(--ipp-border);
      background: rgba(255,255,255,.55);
      color: var(--ipp-navy);
      font-weight: 600;
      font-size: .85rem;
      letter-spacing: .04em;
    }

    .testimonial {
      background: white;
      border: 1px solid rgba(7, 28, 54, .08);
      padding: 2rem;
      height: 100%;
      box-shadow: 0 18px 55px rgba(7, 28, 54, .06);
    }

    .quote-icon {
      color: var(--ipp-gold);
      font-size: 2rem;
    }

    .contact-panel {
      background: var(--ipp-navy);
      color: white;
      padding: 3rem;
      height: 100%;
      position: relative;
      overflow: hidden;
    }

    .contact-panel::after {
      content: '';
      position: absolute;
      width: 260px;
      height: 260px;
      border: 1px solid rgba(200, 164, 93, .28);
      right: -80px;
      bottom: -80px;
      transform: rotate(8deg);
    }

    .contact-form {
      background: white;
      padding: 3rem;
      box-shadow: var(--ipp-shadow);
    }

    .form-control,
    .form-select {
      border-radius: 0;
      border: 1px solid rgba(7, 28, 54, .14);
      padding: .95rem 1rem;
      font-size: .92rem;
    }

    .form-control:focus,
    .form-select:focus {
      border-color: var(--ipp-gold);
      box-shadow: 0 0 0 .18rem rgba(200, 164, 93, .16);
    }

    footer {
      background: #06172B;
      color: rgba(255,255,255,.72);
      padding: 3rem 0;
      border-top: 1px solid rgba(200, 164, 93, .24);
    }

    .footer-brand {
      font-family: 'Cinzel', Georgia, serif;
      letter-spacing: .18em;
      color: white;
      text-transform: uppercase;
    }

    .back-to-top {
      position: fixed;
      right: 22px;
      bottom: 22px;
      width: 48px;
      height: 48px;
      display: grid;
      place-items: center;
      border: 1px solid var(--ipp-gold);
      background: var(--ipp-navy);
      color: var(--ipp-gold);
      z-index: 999;
      opacity: 0;
      visibility: hidden;
      transform: translateY(16px);
      transition: all .28s ease;
      box-shadow: 0 16px 40px rgba(7, 28, 54, .25);
    }

    .back-to-top.show {
      opacity: 1;
      visibility: visible;
      transform: translateY(0);
    }

    .back-to-top:hover {
      background: var(--ipp-gold);
      color: var(--ipp-navy);
    }

    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity .7s ease, transform .7s ease;
    }

    .reveal.visible {
      opacity: 1;
      transform: translateY(0);
    }

    @media (max-width: 991.98px) {
      .hero-info-card {
        position: relative;
        right: auto;
        bottom: auto;
        margin: -140px 1rem 2rem;
      }

      .hero-title {
        letter-spacing: .1em;
      }

      .nav-link {
        margin-left: 0;
        padding: .8rem 0;
      }

      .section-padding {
        padding: 78px 0;
      }

      .contact-panel,
      .contact-form {
        padding: 2rem;
      }
    }
    .whatsapp-float {
      position: fixed;
      right: 22px;
      bottom: 82px;
      width: 48px;
      height: 48px;
      display: grid;
      place-items: center;
      border: 1px solid #25D366;
      background: #25D366;
      color: #fff;
      z-index: 999;
      text-decoration: none;
      font-size: 1.25rem;
      box-shadow: 0 16px 40px rgba(7, 28, 54, .25);
      transition: all .28s ease;
    }
    
    .whatsapp-float:hover {
      background: #1ebe5d;
      border-color: #1ebe5d;
      color: #fff;
      transform: translateY(-3px);
    }

    .hp-field {
      position: absolute !important;
      left: -9999px !important;
      top: auto !important;
      width: 1px !important;
      height: 1px !important;
      overflow: hidden !important;
      opacity: 0 !important;
      pointer-events: none !important;
    }