/* Setiajaya Sinaran — shared styles */
html { scroll-behavior: smooth; }
body { font-family: 'Inter', sans-serif; }
.font-serif { font-family: 'Fraunces', serif; }

.fade-up { opacity: 0; transform: translateY(24px); transition: all .7s cubic-bezier(.2,.7,.2,1); }
.fade-up.in { opacity: 1; transform: translateY(0); }

.hero-overlay { background: linear-gradient(105deg, rgba(7,27,49,.94) 0%, rgba(11,42,74,.82) 45%, rgba(11,42,74,.35) 100%); }
.page-overlay { background: linear-gradient(180deg, rgba(7,27,49,.86) 0%, rgba(11,42,74,.78) 100%); }

.card-hover { transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s; }
.card-hover:hover { transform: translateY(-8px); box-shadow: 0 24px 50px -12px rgba(11,42,74,.28); }

.link-underline { position: relative; }
.link-underline::after { content:''; position:absolute; left:0; bottom:-4px; width:0; height:2px; background:#F15E31; transition:width .3s; }
.link-underline:hover::after { width:100%; }

::selection { background:#F15E31; color:#fff; }

/* Services dropdown (desktop) */
.has-dropdown > .dropdown { opacity:0; visibility:hidden; transform: translateY(8px); transition: all .25s ease; }
.has-dropdown:hover > .dropdown { opacity:1; visibility:visible; transform: translateY(0); }

/* Mobile menu */
.mobile-menu { max-height:0; overflow:hidden; transition: max-height .4s ease; }
.mobile-menu.open { max-height: 640px; }

/* Active nav highlighting */
body[data-active="home"] [data-nav="home"],
body[data-active="about"] [data-nav="about"],
body[data-active="services"] [data-nav="services"],
body[data-active="branches"] [data-nav="branches"],
body[data-active="team"] [data-nav="team"],
body[data-active="contact"] [data-nav="contact"] { color:#F15E31 !important; }

/* Inner page hero */
.page-hero { position: relative; }
.breadcrumb a:hover { color:#FF7A4D; }
