/* PTW Theme v1 — unified color + typography (logo-inspired) */
:root{
  --ptw-navy:#0b1e3b;
  --ptw-navy-2:#132a52;
  --ptw-gold:#d4a017;
  --ptw-gold-2:#f0b429;
  --ptw-cream:#f7f2e8;
  --ptw-sand:#e7d6b6;
  --ptw-ink:#0a1220;
  --ptw-muted:rgba(255,255,255,.72);

  --ptw-radius:18px;
  --ptw-shadow:0 16px 45px rgba(0,0,0,.22);
  --ptw-shadow-soft:0 10px 28px rgba(0,0,0,.16);
  --ptw-ring:0 0 0 4px rgba(212,160,23,.20);
}

html,body{height:100%;}
body{
  font-family:"Poppins", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
  color:#fff;
  background:
    radial-gradient(900px 600px at 15% 10%, rgba(212,160,23,.10), transparent 60%),
    radial-gradient(900px 600px at 85% 20%, rgba(240,180,41,.10), transparent 60%),
    linear-gradient(180deg, var(--ptw-navy) 0%, #07162c 100%) !important;
}

h1,h2,h3,h4,h5,h6,
.section-title h2,
.section-title h3{
  font-family:"Poppins", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
  letter-spacing:.2px;
}

a{color:var(--ptw-gold-2);}
a:hover{color:var(--ptw-gold);}

::selection{background:rgba(212,160,23,.25);}

/* AOS safety fallback
   If AOS JS fails to initialise for any reason, elements with data-aos can remain hidden.
   We keep them visible unless the page has explicitly marked AOS as initialised. */
html:not(.aos-initialized) [data-aos]{
  opacity: 1 !important;
  transform: none !important;
}

/* Navbar polish */
.header, #header, .navbar{
  backdrop-filter:saturate(120%) blur(10px);
}
.navbar a, .navbar a:focus{
  font-weight:500;
}
.navbar a:hover, .navbar .active, .navbar .active:focus, .navbar li:hover>a{
  color:var(--ptw-gold-2) !important;
}

/* Buttons unify */
.btn, .btn-primary, .btn-get-started,
.ptw-btn, .ptw-cta-btn, .ptw-action-btn{
  border-radius:999px !important;
  font-weight:600 !important;
  letter-spacing:.2px;
  box-shadow:0 10px 22px rgba(0,0,0,.18);
}

.btn-primary, .ptw-btn--primary, .ptw-action-btn{
  background:linear-gradient(135deg, var(--ptw-gold-2), var(--ptw-gold)) !important;
  border-color:transparent !important;
  color:#111 !important;
}
.btn-primary:hover, .ptw-btn--primary:hover, .ptw-action-btn:hover{
  filter:brightness(1.02);
  transform:translateY(-1px);
}

.btn-outline-primary, .ptw-btn--outline{
  background:transparent !important;
  border:2px solid rgba(240,180,41,.85) !important;
  color:#fff !important;
}
.btn-outline-primary:hover, .ptw-btn--outline:hover{
  background:rgba(240,180,41,.14) !important;
  transform:translateY(-1px);
}

/* Cards / panels */
.card, .service-item, .icon-box, .ptw-card, .team .member, .pricing .box{
  border-radius:var(--ptw-radius) !important;
  box-shadow:var(--ptw-shadow-soft);
}

/* Section blocks — subtle contrast */
.section-bg, .ptw-section-contrast{
  background:
    radial-gradient(900px 700px at 20% 20%, rgba(212,160,23,.08), transparent 60%),
    radial-gradient(900px 700px at 80% 30%, rgba(240,180,41,.08), transparent 60%),
    rgba(255,255,255,.02) !important;
}

/* Forms */
input, select, textarea{
  border-radius:14px !important;
}
input:focus, select:focus, textarea:focus{
  outline:none !important;
  box-shadow:var(--ptw-ring) !important;
  border-color:rgba(240,180,41,.85) !important;
}

/* Swiper arrows + dots */
.swiper-button-next, .swiper-button-prev{
  width:44px !important;
  height:44px !important;
  border-radius:999px !important;
  background:rgba(11,30,59,.55) !important;
  border:1px solid rgba(240,180,41,.35) !important;
  box-shadow:0 10px 22px rgba(0,0,0,.22);
}
.swiper-button-next:after, .swiper-button-prev:after{
  font-size:16px !important;
  font-weight:800;
  color:#fff;
}
.swiper-pagination-bullet{
  background:rgba(240,180,41,.45) !important;
  opacity:1 !important;
}
.swiper-pagination-bullet-active{
  background:var(--ptw-gold-2) !important;
}

/* Footer */
.footer, #footer{
  border-top:1px solid rgba(240,180,41,.15);
  background:
    radial-gradient(800px 500px at 30% 10%, rgba(212,160,23,.10), transparent 70%),
    rgba(0,0,0,.10) !important;
}

/* --- Delight pass v2: icon harmony + spacing rhythm --- */
:root{
  --ptw-section-y: clamp(56px, 5vw, 96px);
  --ptw-section-y-tight: clamp(42px, 4vw, 72px);
  --ptw-section-gap: clamp(18px, 2.2vw, 28px);
}

/* Consistent vertical rhythm */
section, .section, .ptw-section{
  padding-top: var(--ptw-section-y);
  padding-bottom: var(--ptw-section-y);
}
/* Some sections in template already have padding; keep them from doubling */
section.section-bg, section#hero{
  padding-top: var(--ptw-section-y-tight);
  padding-bottom: var(--ptw-section-y-tight);
}

.section-title{ margin-bottom: var(--ptw-section-gap) !important; }
.section-title h2, .section-title h3{ margin-bottom: 10px !important; }

/* Harmonise icons */
.bi, .fa, .fas, .far, .fab,
.icon i, .icon-box i, .icon-box .icon i,
.services .icon i, .features .icon i,
.contact .info i{
  color: var(--ptw-gold-2);
}

/* Social icons */
.social-links a, .ptw-hero-social a{
  border-color: rgba(240,180,41,.35) !important;
}
.social-links a i, .ptw-hero-social a i{
  color: rgba(255,255,255,.88);
}
.social-links a:hover i, .ptw-hero-social a:hover i{
  color: var(--ptw-gold-2);
}

/* Icon pills (where applicable) */
.icon, .icon-box .icon, .service-item .icon{
  background: rgba(240,180,41,.10) !important;
  border: 1px solid rgba(240,180,41,.18) !important;
  border-radius: 16px;
}

/* Slightly refine card padding consistency */
.card, .ptw-card, .service-item, .icon-box, .pricing .box{
  padding: 22px;
}
@media (max-width: 576px){
  .card, .ptw-card, .service-item, .icon-box, .pricing .box{ padding: 18px; }
}


/* ==========================
   PTW Delight: Image hover micro-interactions
   ========================== */
.ptw-imgfx-wrap{
  overflow: hidden;
  border-radius: 16px;
}
.ptw-imgfx{
  transition: transform 450ms ease, filter 450ms ease;
  transform-origin: center center;
  will-change: transform;
}
.ptw-imgfx:hover{
  transform: scale(1.035);
  filter: saturate(1.05) contrast(1.02);
}

/* "Breathe" effect on hover for select images */
.ptw-imgfx-wrap:hover .ptw-imgfx{
  animation: ptw-breathe 4.8s ease-in-out infinite;
}

@keyframes ptw-breathe{
  0%, 100% { transform: scale(1.02); }
  50%      { transform: scale(1.045); }
}

/* Lift effect for cards that contain images */
.ptw-card, .featured-event-card, .team-card, .banquet-card{
  transition: transform 300ms ease, box-shadow 300ms ease;
}
.ptw-card:hover, .featured-event-card:hover, .team-card:hover, .banquet-card:hover{
  transform: translateY(-4px);
}

/* Reduce motion preference */
@media (prefers-reduced-motion: reduce){
  .ptw-imgfx, .ptw-imgfx-wrap:hover .ptw-imgfx,
  .ptw-card, .featured-event-card, .team-card, .banquet-card{
    transition: none !important;
    animation: none !important;
  }
}

