 :root{
    --black:#000000;
    --navy:#2A3467;
    --navy-deep:#161b3d;
    --navy-soft:#4a5694;
    --powder:#BAD7E8;
    --powder-dim:rgba(186,215,232,.55);
    --powder-faint:rgba(186,215,232,.14);
    --ink:#eef4f8;
    --ink-dim:rgba(238,244,248,.68);
    --serif:'Cormorant Garamond', serif;
    --sans:'Jost', sans-serif;
  }

  ::selection{ background:var(--powder); color:var(--black); }

  html{ scroll-behavior:smooth; }

  body{
    background:var(--black);
    color:var(--ink);
    font-family:var(--sans);
    font-weight:300;
    overflow-x:hidden;
  }

  h1,h2,h3,h4,.fg-serif{
    font-family:var(--serif);
    font-weight:500;
    color:var(--ink);
  }
  em, .fg-italic{
    font-family:var(--serif);
    font-style:italic;
    font-weight:600;
    color:var(--powder);
  }

  .fg-eyebrow{
    font-family:var(--sans);
    letter-spacing:.35em;
    text-transform:uppercase;
    font-size:.72rem;
    color:var(--powder);
    display:inline-flex;
    align-items:center;
    gap:.75rem;
  }
  .fg-eyebrow::before,.fg-eyebrow::after{
    content:"";
    width:28px; height:1px;
    background:var(--powder-dim);
  }
  .fg-eyebrow.fg-left::before,.fg-eyebrow.fg-left::after{ display:none; }
  .fg-eyebrow.fg-left::after{ display:inline-block; }

  a{ color:var(--powder); text-decoration:none; }
  a:hover{ color:var(--ink); }

  .fg-btn{
    font-family:var(--sans);
    font-size:.82rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    padding:.9rem 2.1rem;
    border-radius:2px;
    border:1px solid var(--powder);
    transition:all .35s ease;
  }
  .fg-btn-solid{
background: #2B3467;
  color: #fff;
  }
  .fg-btn-solid:hover{
    background:transparent;
    color:var(--powder);
  }
  .fg-btn-outline{
    background:transparent;
    color:var(--ink);
    border-color:var(--powder-dim);
  }
  .fg-btn-outline:hover{
    border-color:var(--powder);
    color:var(--powder);
  }

  /* ---------- Navbar ---------- */
  .fg-nav{
    padding:1.35rem 0;
    background:transparent;
    transition:all .45s ease;
  }
  .fg-nav.fg-scrolled{
    padding:.85rem 0;
    background:rgba(255, 255, 255, 0.82);
    backdrop-filter:blur(14px);
    box-shadow:0 1px 0 var(--powder-faint);
  }
  .fg-brand{
    font-family:var(--serif);
    font-size:1.55rem;
    color:var(--ink) !important;
    display:flex; align-items:center; gap:.6rem;width: 91px;
  }
  .fg-brand .fg-italic{ margin-left:.15rem; }
  .fg-brand-icon{
    width:34px; height:34px;
    border:1px solid var(--powder);
    border-radius:50% 50% 50% 4px;
    display:flex; align-items:center; justify-content:center;
    color:var(--powder);
    font-size:1rem;
    transform:rotate(-45deg);
  }
  .fg-brand-icon i{ transform:rotate(45deg); }

  .fg-nav .nav-link{
font-size: 16px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #000;
  margin: 0 .9rem;
  position: relative;
  padding-bottom: 4px;
  font-weight: bold;
  }
  .fg-nav .nav-link::after{
    content:"";
    position:absolute; left:0; bottom:0;
    width:0; height:1px;
    background:var(--powder);
    transition:width .3s ease;
  }
  .fg-nav .nav-link:hover::after,.fg-nav .nav-link.active::after{ width:100%; }
  .fg-nav .nav-link:hover, .fg-nav .nav-link.active{ color:#2b3467 !important; }

  .navbar-toggler{ border-color:var(--powder-dim); }
  .navbar-toggler-icon{
    background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23BAD7E8' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  }

  /* ---------- Hero ---------- */
  .fg-hero{
    position:relative;
    min-height:100vh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    overflow:hidden;
  }
  .fg-hero-video{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    animation:fgZoom 26s ease-in-out infinite alternate;
  }
  @keyframes fgZoom{ from{ transform:scale(1);} to{ transform:scale(1.12);} }
  .fg-hero-overlay{
    position:absolute; inset:0;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.56) 0%, rgba(238, 238, 238, 0.13) 35%, rgba(0, 0, 0, 0.82) 100%), linear-gradient(150deg, rgba(255, 255, 255, 0.17) 0%, rgba(0, 0, 0, 0.2) 55%);
  }
  .fg-hero-content{ position:relative; z-index:2; padding-top:5rem; }
  .fg-hero-content .fg-eyebrow{ margin-bottom:1.6rem; }
  .fg-hero h1{
    font-size:clamp(2.6rem, 6vw, 5rem);
    line-height:1.05;
    margin-bottom:1.6rem;
    max-width:900px;
  }
  .fg-hero p.lead{
    font-family:var(--sans); font-weight:300;
    color:var(--ink-dim);
    max-width:560px;
    font-size:1.05rem;
    margin-bottom:2.3rem;
  }

  .fg-hero-stats{
    position: relative;
  z-index: 2;
  border-top: 1px solid rgba(186, 215, 232, 0.36);
  margin-top: 3rem;
  border-bottom: 1px solid rgba(186, 215, 232, 0.36);
  }
  .fg-hero-stats .fg-stat{
    padding:1.6rem 1rem;
    text-align:center;
    border-right:1px solid var(--powder-faint);
  }
  .fg-hero-stats .col:last-child .fg-stat{ border-right:none; }
  .fg-stat .fg-num{
    font-family:var(--serif); font-size:3.1rem; color:var(--powder); line-height:1;
  }
  .fg-stat .fg-lbl{
    font-size:15px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-dim); margin-top:.4rem; display:block;
  }

  /* scalloped gate-arch divider — signature motif */
  .fg-scallop{
    position:relative; z-index:2;
    height:34px;
    background:radial-gradient(circle at 24px 0, transparent 24px, var(--black) 25px) 0 -24px / 48px 48px repeat-x;
  }
  .fg-scallop.fg-to-navy{
    background:radial-gradient(circle at 24px 0, transparent 24px, var(--navy) 25px) 0 -24px / 48px 48px repeat-x;
  }
  .fg-scallop-top{ transform:rotate(180deg); }

  /* ---------- Sections ---------- */
  .fg-section{ padding:7.5rem 0; position:relative; }
  .fg-bg-black{ background:var(--black); }
  .fg-bg-navy{ background:linear-gradient(180deg, var(--navy-deep), var(--navy)); }

  .fg-head{ max-width:640px; }
  .fg-head h2{ font-size:clamp(2rem,3.4vw,2.9rem); margin-top:.9rem; }
  .fg-head p{ color:var(--ink-dim); margin-top:1rem; }

  /* Arch-shaped media frame (signature) */
  .fg-arch-frame{
    position:relative;
    width:100%; max-width:440px; margin:0 auto;
    aspect-ratio:3/4;
    border-radius:220px 220px 16px 16px;
    overflow:hidden;
    border:1px solid var(--powder-dim);
    box-shadow:0 40px 80px -30px rgba(0,0,0,.75);
  }
  .fg-arch-frame video, .fg-arch-frame img{
    width:100%; height:100%; object-fit:cover; display:block;
  }
  .fg-arch-frame::after{
    content:"";
    position:absolute; inset:0;
    box-shadow:inset 0 0 0 10px rgba(0,0,0,.25);
    border-radius:inherit;
    pointer-events:none;
  }
  .fg-badge-float{
    position:absolute; left:-1.2rem; bottom:1.6rem;
    background:var(--black);
    border:1px solid var(--powder);
    padding:1rem 1.4rem;
    border-radius:4px;
    max-width:200px;
    box-shadow:0 20px 40px -15px rgba(0,0,0,.7);
  }
  .fg-badge-float .fg-num{ font-family:var(--serif); color:var(--powder); font-size:1.7rem; line-height:1; }
  .fg-badge-float .fg-lbl{ font-size:.7rem; letter-spacing:.05em; color:var(--ink-dim); display:block; margin-top:.2rem; }

  .fg-about-stats{ margin-top:2.4rem; }
  .fg-about-stats .fg-num{ font-family:var(--serif); font-size:1.8rem; color:var(--powder); }
  .fg-about-stats .fg-lbl{ font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-dim); }

  /* Service cards */
  .fg-service{
    background:rgba(0,0,0,.22);
    border:1px solid var(--powder-faint);
    border-radius:6px;
    padding:2.4rem 2rem;
    height:100%;
    transition:transform .4s ease, border-color .4s ease, background .4s ease;
  }
  .fg-service:hover{
    transform:translateY(-8px);
    border-color:var(--powder-dim);
    background:rgba(0,0,0,.4);
  }
  .fg-service .fg-icon{
    width:56px; height:56px;
    border:1px solid var(--powder);
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    color:var(--powder); font-size:1.3rem;
    margin-bottom:1.5rem;
    transition:background .35s ease, color .35s ease;
  }
  .fg-service:hover .fg-icon{ background:var(--powder); color:var(--navy-deep); }
  .fg-service h4{ font-size:1.3rem; margin-bottom:.6rem; }
  .fg-service p{ color:var(--ink-dim); font-size:.92rem; margin:0; }

  /* Gallery */
  .fg-gallery-item{
    position:relative;
    overflow:hidden;
    border-radius:6px;
    margin-bottom:1.5rem;
    break-inside:avoid;
  }
  .fg-gallery-item video, .fg-gallery-item .fg-tile{
    width:100%; display:block; object-fit:cover;
  }
  .fg-gallery-item.fg-tall video, .fg-gallery-item.fg-tall .fg-tile{ height:460px; }
  .fg-gallery-item.fg-short video, .fg-gallery-item.fg-short .fg-tile{ height:280px; }
  .fg-tile{
    background:linear-gradient(160deg, var(--navy), var(--navy-deep));
    display:flex; align-items:center; justify-content:center;
    position:relative;
  }
  .fg-tile i{ font-size:2.1rem; color:var(--powder-dim); }
  .fg-gallery-caption{
    position:absolute; inset:auto 0 0 0;
    padding:1.2rem 1.3rem;
    background:linear-gradient(0deg, rgba(0,0,0,.85), transparent);
    opacity:0; transform:translateY(10px);
    transition:all .4s ease;
  }
  .fg-gallery-item:hover .fg-gallery-caption{ opacity:1; transform:translateY(0); }
  .fg-gallery-caption .fg-eyebrow{ font-size:.62rem; }
  .fg-gallery-caption h5{ font-family:var(--serif); font-size:2.15rem; margin:.2rem 0 0; color:var(--ink); }
  .fg-masonry{ column-count:1; column-gap:1.5rem; }
  @media(min-width:768px){ .fg-masonry{ column-count:2; } }
  @media(min-width:992px){ .fg-masonry{ column-count:3; } }

  /* Quote */
  .fg-quote{ min-height:37vh; display:flex; align-items:center; }
  .fg-quote-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .fg-quote-overlay{ position:absolute; inset:0; background:rgba(0,0,0,.72); }
  .fg-quote blockquote{
    font-family:var(--serif); font-style:italic; font-weight:500;
    font-size:clamp(1.5rem,2.6vw,2.3rem);
    line-height:1.5; color:var(--ink); max-width:820px;
  }
  .fg-quote cite{ font-style:normal; letter-spacing:.14em; text-transform:uppercase; font-size:.72rem; color:var(--powder); }

  /* Why choose us */
  .fg-why{
    text-align:center; padding:2.2rem 1rem;
  }
  .fg-why .fg-icon{
    width:66px; height:66px; margin:0 auto 1.3rem;
    border-radius:50%;
    border:1px solid var(--powder-dim);
    display:flex; align-items:center; justify-content:center;
    color:var(--powder); font-size:1.5rem;
  }
  .fg-why h4{ font-size:1.2rem; margin-bottom:.5rem; }
  .fg-why p{ color:var(--ink-dim); font-size:.9rem; }

  /* Contact */
  .fg-contact-info li{
    display:flex; gap:1rem; margin-bottom:1.4rem; color:var(--ink-dim);
  }
  .fg-contact-info i{ color:var(--powder); font-size:1.1rem; margin-top:.15rem; }
  .fg-social a{
    width:38px; height:38px; border:1px solid var(--powder-dim); border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center; color:var(--ink);
    margin-right:.6rem; transition:all .3s ease;
  }
  .fg-social a:hover{ background:var(--powder); color:var(--navy-deep); border-color:var(--powder); }

  .fg-form-card{
    background:rgba(0,0,0,.35);
    border:1px solid var(--powder-faint);
    border-radius:6px;
    padding:2.5rem;
  }
  .fg-form-card .form-control, .fg-form-card .form-select{
    background:transparent;
    border:none;
    border-bottom:1px solid var(--powder-dim);
    border-radius:0;
    color:var(--ink);
    padding:.7rem .2rem;
    font-family:var(--sans); font-weight:300;
  }
  .fg-form-card .form-control::placeholder{ color:rgba(238,244,248,.4); }
  .fg-form-card .form-control:focus, .fg-form-card .form-select:focus{
    background:transparent; color:var(--ink);
    box-shadow:none; border-color:var(--powder);
  }
  .fg-form-card label{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-dim); margin-bottom:.3rem; }
  .fg-form-card select option{ background:var(--navy-deep); color:var(--ink); }

  /* Footer */
  .fg-footer{ padding:5rem 0 0; border-top:1px solid var(--powder-faint); }
  .fg-footer h6{ font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--powder); margin-bottom:1.3rem; }
  .fg-footer ul{ list-style:none; padding:0; margin:0; }
  .fg-footer ul li{ margin-bottom:.7rem; }
  .fg-footer ul li a{ color:var(--ink-dim); font-size:.9rem; }
  .fg-footer ul li a:hover{ color:var(--powder); }
  .fg-footer p{ color:var(--ink-dim); font-size:.9rem; }
  .fg-footer-bottom{
    border-top:1px solid var(--powder-faint);
    margin-top:3.5rem; padding:1.5rem 0;
    font-size:.8rem; color:var(--ink-dim);
  }

  /* Reveal animation */
  .fg-reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease; }
  .fg-reveal.fg-in{ opacity:1; transform:translateY(0); }

  @media (prefers-reduced-motion: reduce){
    .fg-hero-video{ animation:none; }
    .fg-reveal{ transition:none; opacity:1; transform:none; }
  }

  @media (max-width: 991.98px){
    .fg-badge-float{ position:static; margin-top:-1rem; display:inline-block; }
	.fg-nav { background: #fff;}
	.fg-brand { width: 39px; }
	.fixed-top { padding-top: 40px !important; }
  }