/*-----------------------------------*\

#style.css

\*-----------------------------------*/

/*-----------------------------------*\

#CUSTOM PROPERTY

\*-----------------------------------*/

:root {

/**

* colors

*/

--smokey-black: hsl(0, 0%, 7%);

--eerie-black: hsl(0, 0%, 9%);

--radical-red: hsl(346, 100%, 58%);

--white_a9: hsla(0, 0%, 100%, 0.09);

--white_a15: hsla(0, 0%, 100%, 0.15);

--white_a25: hsla(0, 0%, 100%, 0.25);

--white_a50: hsla(0, 0%, 100%, 0.5);

--white_a70: hsla(0, 0%, 100%, 0.7);

--white_a75: hsla(0, 0%, 100%, 0.75);

--white_a80: hsla(0, 0%, 100%, 0.8);

--jet-1: hsl(0, 0%, 20%);

--jet-2: hsl(0, 0%, 16%);

--white: hsl(0, 0%, 100%);

--black: hsl(0, 0%, 0%);

/**

* gradient color

*/

--gradient-1: linear-gradient(180deg, transparent, var(--white_a80));

--gradient-2: linear-gradient(180deg,var(--white_a80) 25%,hsla(0, 2%, 88%, 0.6) 80%);

/**

* typography

*/

--ff-recoleta: "Recoleta", serif;

--ff-gordita: "Gordita", sans-serif;

--fs-1: 6rem;

--fs-2: 5rem;

--fs-3: 3.8rem;

--fs-4: 2.5rem;

--fs-5: 2.8rem;

--fs-6: 2.5rem;

--fs-7: 2rem;

--fs-8: 1.8rem;

--fs-9: 1.5rem;

--fs-10: 1.4rem;

--fs-11: 1.2rem;

--fw-300: 300;

--fw-400: 400;

--fw-500: 500;

/**

* spacing

*/

--section-padding: 60px;

/**

* shadow

*/

--shadow: 0 12px 30px -10px hsla(0, 0%, 14%, 0.1);

/**

* border radius

*/

--radius-circle: 50%;

--radius-5: 5px;

--radius-25: 25px;

/**

* transition

*/

--transition-1: 0.25s ease;

--transition-2: 0.5s ease;

--transition-3: 1s ease;

--cubic-in: cubic-bezier(0.51, 0.03, 0.64, 0.28);

--cubic-out: cubic-bezier(0.33, 0.85, 0.4, 0.96);

}

/*-----------------------------------*\

#RESET

\*-----------------------------------*/

*,

*::before,

*::after {

margin: 0;

padding: 0;

box-sizing: border-box;

}

li { list-style: none; }

a,

img,

span,

button,

ion-icon { display: block; }

a {

color: inherit;

text-decoration: none;

}

img { height: auto; }

button {

background: none;

border: none;

font: inherit;

cursor: pointer;

}

ion-icon { pointer-events: none; }

address { font-style: normal; }

html {

font-family: var(--ff-gordita);

font-size: 10px;

scroll-behavior: smooth;

}

body {

background-color: var(--white_a80);

color: var(--black);

font-size: 1.6rem;

font-weight: var(--fw-400);

line-height: 2.15;

overflow-x: hidden;

}

body.active { overflow: hidden; }

:focus-visible { outline-offset: 4px; }

::-webkit-scrollbar { width: 5px; }

::-webkit-scrollbar-track { background-color: var(--white); }

::-webkit-scrollbar-thumb { background-color: var(--jet-2); }

/*-----------------------------------*\

#REUSED STYLE

\*-----------------------------------*/

.container { padding-inline: 15px; }

.shape { display: none; }

.section { padding-block: var(--section-padding); }

.h1,

.h2,

.h3,

.h4,

.h5,

.h6 {

font-family: var(--ff-recoleta);

line-height: 1.2;

}

.h1 {

font-size: var(--fs-2);

font-weight: var(--fw-400);

}

.h2,

.h3,

.h4,

.h5,

.h6 { font-weight: var(--fw-300); }

.h2 { font-size: var(--fs-2); }

.h3 { font-size: var(--fs-3); }

.h4 { font-size: var(--fs-4); }

.h5 { font-size: var(--fs-5); }

.h6 { font-size: var(--fs-6); }

.img-holder {

aspect-ratio: var(--width) / var(--height);

background-color: var(--jet-1);

overflow: hidden;

}

.has-before {

position: relative;

z-index: 1;

}

.has-before::before {

content: "";

position: absolute;

}

.img-holder.has-before::before {

bottom: 0;

left: 0;

width: 100%;

height: 50%;

background-image: var(--gradient-1);

}

.img-cover {

width: 100%;

height: 100%;

object-fit: cover;

}

.btn-icon {

background-color: var(--bg-color, var(--white_a70));

border-radius: var(--border-radius, var(--radius-circle));

display: grid;

place-content: center;

transition: var(--transition-2);

}

.btn-icon path { transition: var(--transition-2); }

.btn-icon:is(:hover, :focus-visible) {

background-color: var(--hover-bg-color, var(--white));

}

.btn-icon:is(:hover, :focus-visible) path {

stroke: var(--hover-text-color, var(--black));

}

.section-subtitle {

color: var(--black);

font-size: var(--fs-7);

text-transform: uppercase;

letter-spacing: 3.5px;

}

[data-reveal] {

transform: translateY(50px);

opacity: 0;

transition: var(--transition-3);

}

[data-reveal="left"] { transform: translate(-50px, 0); }

[data-reveal="right"] { transform: translate(50px, 0); }

[data-reveal].revealed {

transform: translate(0, 0);

opacity: 1;

}

/*-----------------------------------*\

#LOADING

\*-----------------------------------*/

.loading {

position: fixed;

top: 0;

left: 0;

width: 100vw;

height: 100vh;

background-color: var(--white);

z-index: 5;

transform-origin: bottom;

transition: 0.5s var(--cubic-in);

transition-delay: 0.5s;

}

.loading.loaded {

transform: scaleY(0);

pointer-events: none;

}

.loading > * {

position: absolute;

top: 50%;

left: 50%;

transform: translate(-50%, -50%);

transition: var(--transition-2);

}

.loading.loaded > * { opacity: 0; }

.loading .circle { animation: rotate360 1.5s linear infinite; }

@keyframes rotate360 {

0% { transform: translate(-50%, -50%) rotate(0); }

100% { transform: translate(-50%, -50%) rotate(1turn); }

}

/*-----------------------------------*\

#HEADER

\*-----------------------------------*/

.header {

position: fixed;

top: 0;

left: 0;

width: 100%;

padding-block: 18px;

transition: var(--transition-2);

z-index: 8;

}

.header.active {

background-color: var(--eerie-black);

padding-block: 12px;

box-shadow: var(--shadow);

}

.header .container,

.navbar-top {

display: flex;

justify-content: space-between;

align-items: center;

}

.navbar {

position: fixed;

top: 0;

right: -280px;

background-color: var(--white);

height: 100vh;

max-width: 280px;

width: 100%;

padding: 25px;

overflow-y: auto;

z-index: 2;

transition: 0.25s var(--cubic-out);

visibility: hidden;

}

.navbar.active {

visibility: visible;

transform: translateX(-280px);

transition-duration: 0.5s;

}

.navbar-top .logo .img { width: 130px; }

.nav-close-btn {

width: 40px;

height: 40px;

}

.nav-close-btn .span {

background-color: var(--black);

width: 25px;

height: 3px;

border-radius: 5px;

transition: var(--transition-1);

}

.nav-close-btn .one { transform: rotate(45deg) translate(2px, 2px); }

.nav-close-btn .two { transform: rotate(-45deg); }

.nav-close-btn:is(:hover, :focus-visible) .span { background-color: var(--radical-red); }

.navbar-list {

text-align: center;

padding-block: 40px;

}

.navbar-link {

font-size: var(--fs-7);

font-weight: var(--fw-400);

padding-block: 2px;

text-transform: capitalize;

transition: var(--transition-1);

}

.navbar-link:is(:hover, :focus-visible) { color: var(--radical-red); }

.login-btn {

display: flex;

justify-content: center;

align-items: center;

gap: 15px;

width: 100%;


padding: 8px 30px;

border-radius: var(--radius-5);

margin-block-end: 50px;



}



.login-btn .span { font-weight: var(--fw-500); }

.navbar-title {

font-size: var(--fs-8);

font-weight: var(--fw-500);

line-height: 1;

margin-block-end: 15px;

}


.login-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-16);
  width: 100%;
  /* WhatsApp Green */
  background-color: #25D366;
  color: var(--color-btn-primary-text);

}

.navbar-text {

color: var(--black);

font-weight: var(--fw-300);

line-height: 1.6;

margin-block-end: 15px;

}

.navbar .contact-link {

color: var(--radical-red);

font-size: var(--fs-6);

font-weight: var(--fw-400);

}

.navbar .contact-link:is(:hover, :focus-visible) { text-decoration: underline; }

.overlay {

position: fixed;

inset: 0;

background-color: var(--black);

z-index: 1;

transition: var(--transition-1);

opacity: 0;

pointer-events: none;

}

.overlay.active {

opacity: 0.75;

pointer-events: all;

}

/*-----------------------------------*\

#HERO

\*-----------------------------------*/

.hero {

padding-block-start: 120px;

text-align: center;

z-index: 6;

}

.hero-banner {

max-width: 150px;

margin-inline: auto;

margin-block-end: 20px;

}

.hero .wrapper {

position: relative;

text-align: center;

height: 1.2em;

margin-block: 10px 25px;

}

.hero .wrapper .strong {

position: absolute;

top: 0;

left: 50%;

transform: translateX(-50%);

width: 300px;

font-weight: inherit;

display: flex;

}

.hero-text {

font-size: var(--fs-5);

font-weight: var(--fw-400);

text-transform: uppercase;

letter-spacing: 5px;

}

.hero .wrapper .space { padding: 0.1em; }

.hero .wrapper :is(.in, .out) {

opacity: 0;

transform: scaleY(0);

}

.hero .strong.active .out {

opacity: 1;

transform: scaleY(1);

animation: textWave 0.2s ease reverse forwards;

}

.hero .wrapper .in { animation: textWave 0.2s ease forwards; }

@keyframes textWave {

0% {

opacity: 0;

transform: scaleY(0);

}

100% {

opacity: 1;

transform: scaleY(1);

}

}

/* HERO VIDEO */

.hero {

position: relative;

min-height: 100vh;

display: flex;

align-items: center;

padding-block-start: 150px;

text-align: left;

overflow: hidden;

}

.hero-video-bg {

position: absolute;

top: 0;

left: 0;

width: 100%;

height: 100vh;

z-index: -2;

}

.hero-video-bg video {

width: 100vw;

height: 100vh;

object-fit: cover;

}

.hero-overlay {

position: absolute;

inset: 0;

background: linear-gradient(135deg,

rgba(255, 255, 255, 0.281) 0%,

rgba(255, 255, 255, 0.581) 50%,

rgba(255, 255, 255, 0.218) 100%);

z-index: 1;

}

.hero-content {

max-width: 100%;

position: relative;

z-index: 2;

text-align: center;

}

.hero-title {

text-align: center;

}

@media (min-width: 992px) {

.hero {

padding-block: 170px 150px;

}

.hero-content {

margin-inline-end: 0px;

}

}

.hero {

will-change: transform;

overflow: hidden;

height: 100vh;

display: flex;

align-items: center;

}

.gallery {

will-change: transform;

overflow: hidden;

}

.hero-char {

display: inline-block;

transform-origin: bottom center;

}

.hero-video-bg video {

will-change: transform;

transition: none;

}

.hero-content {

will-change: transform;

}

/*-----------------------------------*\

#GALLERY

\*-----------------------------------*/

.gallery-list {

display: grid;

gap: 30px;

}

.gallery-item,

.gallery-card { position: relative; }

.gallery-card :is(.card-content, .btn-icon) {

position: absolute;

z-index: 1;

}

.gallery-card .card-content {

bottom: 0;

left: 0;

width: 100%;

padding: 30px 12px;

}

.gallery-card .card-tag {

color: var(--black);

font-size: var(--fs-9);

font-weight: var(--fw-300);

}

.gallery-card .card-title {

font-weight: var(--fw-400);

max-width: max-content;

margin-block-end: 2px;

}

.gallery-card .card-title:is(:hover, :focus-visible) { text-decoration: underline; }

.gallery-card .btn-icon {

top: 0;

right: 0;

width: 50px;

height: 50px;

--border-radius: 0 0 0 var(--radius-25);

}

.gallery-card .btn-icon img {

width: 25px;

transform: rotate(-45deg);

}

.gallery-card .btn-icon:is(:hover, :focus-visible) {

border-bottom-left-radius: var(--radius-5);

}

.gallery-card { animation: changeCard 10s linear infinite; }

.gallery-item .gallery-card:last-child {

position: absolute;

top: 0;

left: 0;

width: 100%;

opacity: 0;

visibility: hidden;

animation-delay: 5s;

}

@keyframes changeCard {

0%,

55%,

100% {

opacity: 0;

visibility: hidden;

}

5%,

50% {

opacity: 1;

visibility: visible;

}

}

.gallery-item:is(:hover, :focus-within) .gallery-card { animation-play-state: paused; }

.gallery .scroll-down {

width: 60px;

height: 60px;

display: grid;

place-content: center;

margin-inline: auto;

margin-block-start: 55px;

border: 1px solid var(--white_a15);

border-radius: var(--radius-circle);

transition: var(--transition-2);

animation: scrollDown 2.5s linear infinite alternate;

}

.gallery .scroll-down img { width: 22px; }

.gallery .scroll-down:is(:hover, :focus-visible) {

background-color: var(--radical-red);

border-color: var(--radical-red);

}

@keyframes scrollDown {

0% { transform: translateY(-12px); }

100% { transform: translateY(12px); }

}

/*-----------------------------------*\

#CATEGORY

\*-----------------------------------*/

.category {

--section-padding: 40px;

border-block: 1px solid var(--white_a9);

}

.category-list {

display: flex;

justify-content: center;

align-items: center;

flex-wrap: wrap;

gap: 35px 10px;

}

.category-item { max-width: calc(50% - 5px); }

.category-card .card-title {

color: var(--black);

margin-block-end: 10px;

text-align: center;

transition: var(--transition-2);

}

.category-card:is(:hover, :focus-visible) .card-title { color: var(--black); }

/*-----------------------------------*\

#ABOUT

\*-----------------------------------*/

.about .container {

display: grid;

gap: 45px;

}

.about .wrapper,

.about-banner { padding-inline-start: 45px; }

.about .section-title { margin-block-end: 35px; }

.about .section-text {

font-size: var(--fs-7);

color: var(--white_a70);

font-weight: var(--fw-300);

line-height: 1.7;

margin-block-end: 35px;

}

.about .wrapper::before {

top: 10px;

left: 0;

background-image: url("../images/about-quote.svg");

background-repeat: no-repeat;

background-size: contain;

width: 20px;

height: 20px;

}

.about .section-text .em {

color: var(--white);

font-weight: var(--fw-400);

text-decoration: underline;

}

.about-banner { position: relative; }

.about .shape-1 {

display: block;

position: absolute;

bottom: 10%;

left: 0;

z-index: 1;

width: 100px;

}

/*-----------------------------------*\

#SERVICES

\*-----------------------------------*/

.service { padding-inline: 15px; }

.service .section-subtitle {

padding-inline: 10px;

margin-block-end: 55px;

}

.service-card .img { display: none; }

.service-list > li:not(:last-child) { border-block-start: 1px solid var(--black); }

.service-list > li:last-child { border-block: 1px solid var(--black); }

.service-card { padding: 30px 10px; }

.service-card .card-subtitle {

color: var(--black);

font-size: var(--fs-7);

font-weight: var(--fw-300);

line-height: 1.5;

margin-block: 10px 25px;

}

.service-card .btn-icon {

width: 55px;

height: 55px;

border: 1px solid var(--black);

--bg-color: black;

--hover-bg-color: var(--white_a80);

--hover-text-color: var(--black);

}

.service-card .btn-icon svg { width: 25px; }

/*-----------------------------------*\

#PORTFOLIO

\*-----------------------------------*/

.portfolio { padding-block-end: 100px; }

.portfolio .section-title { margin-block-end: 60px; }

.portfolio-card {

position: relative;

margin-block-end: 50px;

}

.portfolio-card :is(.card-content, .btn-icon) {

position: absolute;

z-index: 1;

}

.portfolio-card .card-content {

bottom: 0;

left: 0;

width: 100%;

padding: 20px 15px;

}

.portfolio-card .card-tag {

color: var(--black);

font-weight: var(--fw-300);

}

.portfolio-card .btn-icon {

top: 20px;

right: 20px;

width: 45px;

height: 45px;

--hover-bg-color: var(--radical-red);

--hover-text-color: var(--white);

}

.portfolio-card .btn-icon svg { width: 20px; }

.portfolio-card .card-title:is(:hover, :focus) { text-decoration: underline; }

/*-----------------------------------*\

#FOOTER

\*-----------------------------------*/

.footer { position: relative; }

.footer .abs-img { display: none; }

.footer-top {

padding-block: 100px 140px;

border-block-start: 1px solid var(--eerie-black);



z-index: 1;

}

.footer-top .section-title {

margin-block: 20px 90px;

line-height: normal;

}

.footer .btn-icon {

width: 60px;

height: 60px;

margin-inline: auto;

--hover-bg-color: var(--radical-red);

}

.footer .btn-icon img { width: 30px; }

.footer-bg {

position: absolute;

bottom: 0;

left: 0;

width: 100%;

height: 60%;

z-index: -1;

}

.footer-bg::before {

inset: 0;

background-image: var(--gradient-2);

}

.footer-bg .img-cover { object-position: top; }

.footer-bottom .logo {

margin-inline: auto;

max-width: max-content;

margin-block-end: 20px;

}

.social-list {

display: flex;

justify-content: center;

gap: 10px;

}

.social-link { font-weight: var(--fw-500); }

.social-link:is(:hover, :focus-visible) { text-decoration: underline; }

.copyright,

.social-list { padding-block-end: 15px; }

.copyright {

font-weight: var(--fw-300);

letter-spacing: 0.5px;

text-align: center;

}

/*-----------------------------------*\

#BACK TO TOP

\*-----------------------------------*/

.back-top-btn {

position: fixed;

bottom: 30px;

right: -70px;

width: 70px;

height: 70px;

border: 1px dashed currentColor;

color: var(--radical-red);

font-size: var(--fs-11);

border-radius: var(--radius-circle);

display: grid;

place-items: center;

visibility: hidden;

transition: var(--transition-2);

z-index: 3;

}

.back-top-btn.show {

transform: translateX(-100px);

visibility: visible;

}

.back-top-btn:hover { color: var(--white); }

/*-----------------------------------*\

#ENQUIRE POPUP

\*-----------------------------------*/

.enquire-float-btn {

position: fixed;

bottom: 50%;


right: -3%;

z-index: 4;

background-color: var(--radical-red);

color: var(--white);

/* border-radius: 999px; */

padding: 10px 20px;

font-size: 1.4rem;

border: none;

cursor: pointer;

box-shadow: 0 8px 20px rgba(0,0,0,0.35);

transition: var(--transition-2);

transform: rotate(-90deg);

margin-left: 0 !important;



}



.enquire-float-btn:hover {

background-color: var(--white);

color: var(--black);

}

/* POPUP OVERLAY */

.enquire-overlay {

position: fixed;

inset: 0;

background-color: rgba(250, 250, 250, 0.7);

z-index: 5;

opacity: 0;

visibility: hidden;

transition: var(--transition-2);

}

/* POPUP MODAL */

.enquire-modal {

position: fixed;

bottom: 30px;

right: 30px;

max-width: 360px;

width: 90%;

background-color: var(--white_a80);

border-radius: var(--radius-25);

padding: 20px 24px 24px;

z-index: 6;

box-shadow: var(--shadow);

opacity: 0;

visibility: hidden;

transform: translateY(20px);

transition: var(--transition-2);

}

.enquire-modal.active,

.enquire-overlay.active {

opacity: 1;

visibility: visible;

transform: translateY(0);

}

.enquire-close {

position: absolute;

top: 10px;

right: 14px;

font-size: 2.4rem;

line-height: 1;

background: none;

border: none;

color: var(--black);

cursor: pointer;

transition: var(--transition-1);

}

.enquire-close:hover {

color: var(--radical-red);

}

.enquire-modal .h4 {

margin-block-end: 8px;

}

.enquire-modal .section-text {

margin-block-end: 12px;

font-size: 1.3rem;

}

.enquire-form {

margin-top: 10px;

display: grid;

gap: 10px;

}

.enquire-field label {

font-size: 1.3rem;

display: block;

margin-bottom: 4px;

color: var(--black);

}

.enquire-field input,

.enquire-field textarea {

width: 100%;

padding: 8px 10px;

border-radius: var(--radius-5);

border: 1px solid var(--black);

background-color: var(--white_a80);

color: var(--black);

font-family: inherit;

font-size: 1.4rem;

transition: var(--transition-1);

}

.enquire-field input:focus,

.enquire-field textarea:focus {

outline: none;

border-color: var(--radical-red);

background-color: rgba(255,255,255,0.05);

}

.enquire-field textarea {

resize: vertical;

min-height: 60px;

}

.enquire-form .login-btn {

margin-top: 8px;

padding: 10px 20px;

font-size: 1.3rem;

}

/* MOBILE: CENTER POPUP */

@media (max-width: 575px) {

.enquire-modal {

left: 50%;

right: auto;

bottom: 50%;

transform: translate(-50%, 20px);

width: 85%;

max-width: 320px;

}

.enquire-modal.active {

transform: translate(-50%, 50%);

}

}

/*-----------------------------------*\

#CUSTOM CURSOR

\*-----------------------------------*/

.cursor { display: none; }

/*-----------------------------------*\

#MEDIA QUERIES

\*-----------------------------------*/

/**

* responsive for large than 575px screen

*/

@media (min-width: 575px) {



/**

* CUSTOM PROPERTY

*/

:root {

/**

* spacing

*/

--section-padding: 80px;

}

/**

* REUSED STYLE

*/

.container {

max-width: 540px;

width: 100%;

margin-inline: auto;

}

:is(.header, .gallery, .category, .portfolio) .container { max-width: unset; }

/**

* HEADER

*/

.navbar {

max-width: 500px;

right: -500px;

}

.navbar.active { transform: translateX(-500px); }

/**

* GALLERY

*/

.gallery-list {

grid-template-columns: 1fr 1fr;

column-gap: 25px;

}

.gallery-card .btn-icon {

transform-origin: top right;

transform: scale(0);

}

.gallery-card:is(:hover, :focus-within) .btn-icon { transform: scale(1); }

.gallery-card :is(.card-title, .card-tag) {

transform: translateY(10px);

opacity: 0;

transition: var(--transition-2);

}

.gallery-card .card-tag { transition-delay: 0.1s; }

.gallery-card:is(:hover, :focus-within) :is(.card-title, .card-tag) {

transform: translateY(0);

opacity: 1;

}

.gallery [data-reveal] {

transform: translateY(0);

opacity: 1;

}

/**

* CATEGORY

*/

.category-item { max-width: 235px; }

/**

* PORTFOLIO

*/

.portfolio-list {

display: flex;

column-gap: 30px;

}

/**

* FOOTER

*/

.footer-bottom { padding-block-end: 40px; }

.footer-bottom .container {

display: grid;

grid-template-columns: repeat(3, 1fr);

align-items: center;

}

.footer-bottom .logo { margin: 0; }

.copyright,

.social-list { padding-block-end: 0; }

.social-list {

order: 1;

justify-content: flex-end;

}

}

/**

* responsive for large than 768px screen

*/

@media (min-width: 768px) {

/**

* CUSTOM PROPERTY

*/

:root {

/**

* typography

*/

--fs-3: 4.5rem;

}

/**

* REUSED STYLE

*/

.container { max-width: 720px; }

/**

* ABOUT

*/

.about-banner {

max-width: 500px;

margin-inline: auto;

}

/**

* SERVICE

*/

.service-card {

display: flex;

justify-content: space-between;

align-items: center;

}

.service-card .card-subtitle { margin-block-end: 15px; }

}

/**

* responsive for large than 992px screen

*/

@media (min-width: 992px) {

/**

* CUSTOM PROPERTY

*/

:root {

/**

* typography

*/

--fs-1: 8rem;

}

/**

* REUSED STYLE

*/

.section { position: relative; }

.container { max-width: 960px; }

.shape {

display: block;

position: absolute;

}

/**

* HEADER

*/

.header { padding-block: 10px; }

.navbar {

padding: 40px;

padding-block-end: 10px;

}

.navbar-link { --fs-7: 2.4rem; }

.navbar-title { --fs-8: 2.2rem; }

.navbar-text {

font-size: 1.9rem;

margin-block-end: 30px;

}

/**

* HERO

*/

.hero { padding-block-start: 150px; }

.hero .container {

position: relative;

z-index: 1;

}

.hero-title { text-align: center; }

.hero .wrapper {

--fs-2: 8rem;

margin-block: -5px 10px;

}

.hero-banner {

position: absolute;

top: 50%;

right: 0;

transform: translateY(-50%);

max-width: 200px;

z-index: -1;

}

.hero .shape { display: none; }

/**

* GALLERY

*/

.gallery { padding-block-end: 140px; }

.gallery-list { grid-template-columns: repeat(4, 1fr); }

.gallery-item:nth-child(even) { margin-block-start: 100px; }

.gallery .scroll-down {

width: 85px;

height: 85px;

margin-block-start: 100px;

}

.gallery .scroll-down img { width: 26px; }

.gallery .shape {

left: 5%;

bottom: 15%;

}

/**

* CATEGORY

*/

.category { --section-padding: 60px; }

.category-card { position: relative; }

.category-card .card-banner {

position: absolute;

bottom: 100%;

left: 50%;

transform: translate(-50%, -20px);

width: 200px;

opacity: 0;

visibility: hidden;

transition: var(--transition-2);

}

.category-card:is(:hover, :focus-visible) .card-banner {

transform: translate(-50%, 0);

visibility: visible;

opacity: 1;

}

.category-card .card-title { --fs-4: 5.5rem; }

.category-item { min-width: max-content; }

.category-list {

row-gap: 0;

justify-content: flex-start;

}

/**

* ABOUT

*/

.about .container {

grid-template-columns: 0.9fr 1fr;

align-items: flex-start;

gap: 80px;

}

.about-content { order: 1; }

.about-banner .shape-2 {

width: 100%;

bottom: -20px;

left: 0;

animation: moving 8s linear infinite;

}

@keyframes moving {

0%,

100% { transform: translateY(0); }

50% { transform: translateY(30px); }

}

.about .shape-3 {

bottom: 0;

right: 0;

}

/**

* SERVICE

*/

.service-card { position: relative; }

.service-card .img {

display: block;

position: absolute;

top: 50%;

left: 50%;

transform: translate(-50%, -50%);

width: 200px;

opacity: 0;

visibility: hidden;

transition: var(--transition-1);

z-index: -1;

}

.service-card:is(:hover, :focus-within) .img {

opacity: 1;

visibility: visible;

}

/**

* PORTFOLIO

*/

.portfolio {

padding-block-end: 150px;

margin-block-end: 60px;

}

.portfolio .shape {

bottom: 0;

right: 0;

}

/**

* FOOTER

*/

.footer .shape {

top: 25%;

left: 0;

}

.footer .abs-img {

display: block;

position: absolute;

max-width: max-content;

z-index: -1;

}

.footer .abs-img-1 {

width: 9%;

top: 12%;

left: 10%;

}

.footer .abs-img-2 {

width: 14%;

top: 15%;

right: 0;

}

.footer .abs-img-3 {

width: 16%;

left: 0;

bottom: 10%;

}

.footer .abs-img-4 {

width: 9%;

right: 15%;

bottom: 10%;

}

/**

* CUSTOM CURSOR

*/

.cursor {

display: block;

position: fixed;

top: 0;

left: 0;

width: 75px;

height: 75px;

background-color: var(--white);

mix-blend-mode: exclusion;

border-radius: var(--radius-circle);

transform: translate(-50%, -50%) scale(0.35);

transition: transform 0.35s;

pointer-events: none;

z-index: 6;

}

.cursor.hovered { transform: translate(-50%, -50%) scale(1.2); }

.cursor.disabled { transform: translate(-50%, -50%) scale(0); }

}

/**

* responsive for large than 1200px screen

*/

@media (min-width: 1200px) {

/**

* CUSTOM PROPERTY

*/

:root {

/**

* typography

*/

--fs-1: 10rem;

--fs-2: 9rem;

--fs-3: 6.8rem;

--fs-4: 3.6rem;

--fs-6: 2.8rem;

}

/**

* REUSED STYLE

*/

.container { max-width: 1140px; }

/**

* HEADER

*/

.header .container { padding-inline: 35px; }

/**

* HERO

*/

.hero { padding-block: 170px 150px; }

.hero .container { max-width: 100%; }

.hero .wrapper {

--fs-2: 10rem;

margin-block: -10px 15px;

}

.hero .wrapper .strong { left: 40%; }

.hero-text {

--fs-10: 2rem;

font-weight: var(--fw-400);

letter-spacing: 8px;

}

.hero-banner { max-width: 290px; }

.hero .shape {

display: block;

top: 60%;

left: 0;

}

/**

* GALLERY

*/

.gallery-list { gap: 50px; }

.gallery-card .card-title { font-weight: var(--fw-300); }

/**

* CATEGORY

*/

.category-list { column-gap: 15px; }

.category-card .card-title { --fs-4: 7rem; }

/**

* ABOUT

*/

.about .container { gap: 120px; }

.about .shape-1 { width: max-content; }

.about .section-title { margin-block-end: 70px; }

.about .wrapper { padding-inline-start: 80px; }

.about .wrapper::before {

width: 35px;

height: 30px;

}

.about .section-text {

--fs-6: 2.5rem;

margin-block-end: 50px;

}

/**

* SERVICE

*/

.service-card { padding-block: 50px; }

.service-card .card-subtitle { --fs-7: 2.4rem; }

.service-card .img { width: max-content; }

.service-card .btn-icon {

width: 95px;

height: 95px;

}

.service-card .btn-icon svg { width: 40px; }

/**

* PORTFOLIO

*/

.portfolio-list { column-gap: 90px; }

.portfolio-card { margin-block-end: 100px; }

.portfolio-card .card-content { padding-inline: 50px; }

.portfolio-card .btn-icon {

width: 60px;

height: 60px;

top: auto;

bottom: 45px;

right: 50px;

opacity: 0;

transition: var(--transition-2);

}

.portfolio-card .btn-icon svg { width: 25px; }

.portfolio-card:is(:hover, :focus-within) .btn-icon { opacity: 1; }

/**

* FOOTER

*/

.footer-top { padding-block: 300px; }

.footer-top .section-title {

--fs-2: 8rem;

margin-block-start: 50px;

}

.footer .btn-icon {

width: 90px;

height: 90px;

}

.footer .btn-icon img { width: 45px; }

}

/**

* responsive for large than 1400px screen

*/

@media (min-width: 1400px) {

/**

* CUSTOM PROPERTY

*/

:root {

/**

* typography

*/

--fs-1: 13rem;

--fs-2: 10rem;

--fs-3: 8rem;

}

/**

* REUSED STYLE

*/

.container { max-width: 1320px; }

:is(.header, .gallery, .category, .portfolio) .container { max-width: 1580px; }

/**

* HEADER

*/

.header .container { padding-inline: 60px; }

/**

* HERO

*/

.hero .container { max-width: 100%; }

.hero-content { margin-inline-end: 0px; }

.hero .wrapper { --fs-2: 13rem; }

.hero-text { --fs-10: 2.4rem; }

.hero-banner { max-width: max-content; }

/**

* CATEGORY

*/

.category .container { padding-inline: 40px; }

.category-card .card-title { --fs-4: 8rem; }

/**

* ABOUT

*/

.about { padding-block: 180px 120px; }

/**

* SERVICE

*/

.service { padding-inline: 70px; }

.service-card { padding-block: 65px; }

/**

* PORTFOLIO

*/

.portfolio .container { padding-inline: 45px; }

/**

* FOOTER

*/

.footer-top .container { max-width: 1200px; }

.social-link i {

font-size: 25px;

}

}

/*-----------------------------------*\
#ENQUIRE BUTTON + POPUP (FULLY RESPONSIVE - VERTICAL RIGHT)
\*-----------------------------------*/

/* Enquire Float Button - Fixed Vertical Right */
.enquire-float-btn {
  position: fixed;
  right: 0;                           /* FIXED: Right edge */
  top: 50%;                           /* Centered vertically */
  transform: translateY(-50%) rotate(90deg);  /* Rotate text 90 degrees */
  transform-origin: right center;
  background-color: var(--radical-red);
  color: var(--white);
  padding: 8px 16px;
  border-radius: 0;                   /* No radius on rotated button */
  border: none;
  font-size: 1.2rem;
  font-weight: var(--fw-500);
  cursor: pointer;
  box-shadow: -4px 4px 12px rgba(0, 0, 0, 0.3);
  transition: all var(--transition-2);
  z-index: 4;
  white-space: nowrap;
  letter-spacing: 1px;
  margin: 0;
  padding: 10px 14px;
}

.enquire-float-btn:hover {
  background-color: var(--white);
  color: var(--black);
  box-shadow: -6px 6px 18px rgba(0, 0, 0, 0.4);
  transform: translateY(-50%) rotate(90deg) scale(1.05);
}

/* Hide when footer is visible */
.enquire-float-btn.is-footer-visible {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s ease;
}

/* Overlay - Full page coverage */
.enquire-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7);
  z-index: 5;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition-2), visibility var(--transition-2);
  pointer-events: none;
}

.enquire-overlay.active {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
}

/* Modal - Mobile First (Centered) */

/* Modal Close Button */


/* Footer Enquire Button */
.enquire-footer-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border-radius: 999px;
  border: 1px solid var(--white_a25);
  background-color: transparent;
  color: var(--white);
  font-size: 1.4rem;
  font-weight: var(--fw-500);
  cursor: pointer;
  transition: all var(--transition-2);
}

.enquire-footer-btn:hover,
.enquire-footer-btn:focus-visible {
  background-color: var(--radical-red);
  border-color: var(--radical-red);
  color: var(--white);
}

/* RESPONSIVE ADJUSTMENTS */

/* Small phones (max-width: 360px) */
@media (max-width: 360px) {
  .enquire-float-btn {
    padding: 30px 12px;
    font-size: 1rem;
  }
  
  
  .enquire-field input,
  .enquire-field textarea {
    font-size: 1.2rem;
    padding: 8px 10px;
  }
  
  .enquire-field textarea {
    min-height: 70px;
  }
}

/* Mobile portrait (361px - 575px) */
@media (min-width: 361px) and (max-width: 575px) {
  .enquire-float-btn {
    padding: 30px 14px;
    font-size: 1.1rem;
  }
  
  .enquire-modal {
    width: 92%;
    max-width: 350px;
    padding: 20px;
  }
  
  .enquire-modal .h4 {
    font-size: 1.7rem;
  }
}

/* Tablet (576px - 767px) */
@media (min-width: 576px) and (max-width: 767px) {
  .enquire-float-btn {
    padding: 30px 16px;
    font-size: 1.2rem;
  }
  
  .enquire-field textarea {
    min-height: 85px;
  }
}

/* Tablet landscape & small laptop (768px - 991px) */
@media (min-width: 768px) and (max-width: 991px) {
  .enquire-float-btn {
    padding: 30px 18px;
    font-size: 1.3rem;
  }
  
  }
  
  .enquire-field textarea {
    min-height: 90px;
  }

/* Laptop (992px - 1199px) */
@media (min-width: 992px) and (max-width: 1199px) {
  .enquire-float-btn {
    padding: 30px 18px;
    font-size: 1.3rem;
  }
  
}

/* Large laptop (1200px+) */
@media (min-width: 1200px) {
  .enquire-float-btn {
    padding: 30px 20px;
    font-size: 1.4rem;
  }
  
  
  .enquire-field textarea {
    min-height: 100px;
  }
}

/* Very large screens (1400px+) */
@media (min-width: 1400px) {
  .enquire-float-btn {
    padding: 30px 22px;
    font-size: 1.5rem;
  }
  
  .enquire-modal {
    max-width: 480px;
  }
}

/* PROPERTIES PAGE */

.properties-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 40px;
  align-items: flex-start;
}

.properties-sidebar {
  position: sticky;
  top: 120px;
  border: 1px solid var(--white_a15);
  border-radius: var(--radius-25);
  padding: 20px 18px;
  background-color: var(--eerie-black);
}

.sidebar-title {
  margin-bottom: 16px;
}

.sidebar-filter {
  display: grid;
  gap: 10px;
}

.filter-btn {
  width: 100%;
  padding: 8px 12px;
  border-radius: var(--radius-5);
  font-size: var(--fs-9);
  text-align: left;
  background-color: transparent;
  color: var(--white_a70);
  border: 1px solid var(--white_a15);
  transition: var(--transition-1);
}

.filter-btn.active,
.filter-btn:hover,
.filter-btn:focus-visible {
  background-color: var(--radical-red);
  border-color: var(--radical-red);
  color: var(--black);
}

.properties-main {
  display: flex;
  flex-direction: column;
  gap: 25px;
}

.properties-top-filter {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 15px 25px;
  padding: 16px 18px;
  border-radius: var(--radius-25);
  border: 1px solid var(--white_a15);
  background-color: rgba(0, 0, 0, 0.4);
}

.status-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.filter-chip {
  padding: 6px 14px;
  border-radius: 999px;
  font-size: var(--fs-10);
  background-color: var(--white_a9);
  color: var(--white_a70);
  border: 1px solid transparent;
  cursor: pointer;
  transition: var(--transition-1);
}

.filter-chip.active,
.filter-chip:hover,
.filter-chip:focus-visible {
  background-color: var(--radical-red);
  color: var(--black);
}

.price-filter {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 220px;
}

.price-label {
  font-size: var(--fs-10);
  color: var(--white_a70);
}

.price-filter input[type="range"] {
  width: 100%;
}

.price-value {
  font-size: var(--fs-10);
  color: var(--white_a70);
}

.properties-grid {
  display: grid;
  gap: 24px;
}

.property-card {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 22px;
  padding: 18px;
  border-radius: var(--radius-25);
  border: 1px solid var(--white_a15);
  background-color: var(--eerie-black);
}

.property-card .card-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
}

.property-card .card-meta {
  font-size: var(--fs-9);
  color: var(--black);
}

.property-card .card-details {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  font-size: var(--fs-10);
  color: var(--black);
}

.property-card .card-details span {
  color: var(--black);
}

/* Responsive */

@media (max-width: 991px) {
  .properties-layout {
    grid-template-columns: 1fr;
  }

  .properties-sidebar {
    position: static;
    order: -1;
  }

  .property-card {
    grid-template-columns: 1fr;
  }
}

/* ================================
   PROPERTIES PAGE ENHANCEMENTS
================================ */

.properties-hero {
  padding-block: 160px 40px;
}

.properties-hero .hero-content {
  max-width: 720px;
}

.properties-hero .hero-title {
  margin-block: 10px 12px;
}

.properties-hero .section-text {
  color: var(--black);
}

/* Layout */

.properties-section {
  --section-padding: 60px;
  padding-block: 40px 80px;
}

.properties-layout {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 40px;
  align-items: flex-start;
}

/* Sidebar property type filter */

.properties-sidebar {
  position: sticky;
  top: 120px;
  border-radius: var(--radius-25);
  padding: 18px 18px 20px;
  background-color: var(--eerie-black);
  border: 1px solid var(--white_a15);
}

.sidebar-title {
  margin-bottom: 12px;
}

.sidebar-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.filter-chip-type {
  padding: 6px 14px;
  border-radius: 999px;
  font-size: var(--fs-10);
  background-color: var(--black);
  color: var(--white_a70);
  border: 1px solid transparent;
  cursor: pointer;
  transition: var(--transition-1);
}

.filter-chip-type.active,
.filter-chip-type:hover,
.filter-chip-type:focus-visible {
  background-color: var(--radical-red);
  color: var(--black);
}

/* Top filters row */

.properties-main {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.properties-top-filter {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 16px 24px;
  padding: 16px 18px;
  border-radius: var(--radius-25);
  border: 1px solid var(--white_a15);
  background-color: rgba(255, 255, 255, 0.35);
}

.status-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.filter-chip {
  padding: 6px 14px;
  border-radius: 999px;
  font-size: var(--fs-10);
  background-color: var(--black);
  color: var(--white_a70);
  border: 1px solid transparent;
  cursor: pointer;
  transition: var(--transition-1);
}

.filter-chip.active,
.filter-chip:hover,
.filter-chip:focus-visible {
  background-color: var(--radical-red);
  color: var(--black);
}

.price-filter {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 260px;
}

.price-label-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.price-label {
  font-size: var(--fs-10);
  color: var(--black);
  text-transform: uppercase;
  letter-spacing: 1.5px;
}

.price-minmax {
  display: flex;
  gap: 10px;
  font-size: var(--fs-10);
  color: var(--black);
}

.price-filter input[type="range"] {
  width: 100%;
}

.price-value {
  font-size: var(--fs-10);
  color: var(--black);
}

/* Card grid and card design */

.properties-grid {
  display: grid;
  gap: 24px;
}

.property-card {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 22px;
  padding: 18px 18px 20px;
  border-radius: var(--radius-25);
  border: 1px solid var(--black);
  background-color: var(--eerie-black);
  box-shadow: 0 18px 40px -24px rgba(0, 0, 0, 0.7);
}

.property-card .card-banner {
  border-radius: var(--radius-25);
  overflow: hidden;
}

.property-card .card-content {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.card-header {
  display: flex;
  justify-content: space-between;
  gap: 8px 16px;
  align-items: flex-start;
}

.card-title {
  margin-bottom: 2px;
}

.card-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.badge {
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 1.1rem;
  letter-spacing: 0.3px;
  border: 1px solid var(--white_a25);
  color: var(--white_a75);
}

.badge-status {
  border-color: var(--radical-red);
  color: var(--radical-red);
}

.badge-rera {
  border-color: var(--white_a50);
}

.badge-feature {
  border-color: var(--white_a25);
}

.card-location {
  font-size: var(--fs-10);
  color: var(--white_a70);
}

.card-price {
  font-size: var(--fs-8);
  font-weight: var(--fw-400);
}

.card-details {
  display: grid;
  gap: 4px;
  font-size: var(--fs-10);
  color: var(--white_a70);
}

.card-details span {
  color: var(--white_a50);
}

.card-actions {
  margin-top: 10px;
}

.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 18px;
  border-radius: 999px;
  background-color: var(--radical-red);
  color: var(--black);
  font-size: var(--fs-10);
  font-weight: var(--fw-500);
  border: none;
  cursor: pointer;
  transition: var(--transition-2);
}

.btn-primary:hover,
.btn-primary:focus-visible {
  background-color: var(--white);
}

/* Contact section */

.contact-section {
  --section-padding: 80px;
  border-top: 1px solid var(--white_a15);
  margin-top: 40px;
}

.contact-layout {
  display: grid;
  gap: 40px;
  align-items: flex-start;
}

.contact-info .section-title {
  margin-block: 8px 16px;
}

.contact-list {
  margin-top: 18px;
  display: grid;
  gap: 6px;
  font-size: var(--fs-9);
  color: var(--white_a70);
}

.contact-list span {
  color: var(--white_a50);
  margin-right: 6px;
}

.contact-list a {
  text-decoration: underline;
  justify-content: left;
}

.contact-form-wrapper {
  border-radius: var(--radius-25);
  border: 1px solid var(--black);
  padding: 22px 20px 24px;
  background-color: var(--white_a15);
}

/* Footer simplification */

.footer-bottom-simple {
  border-top: 1px solid var(--white_a15);
  padding-block: 24px 26px;
}

.footer-bottom-layout {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 16px 24px;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  font-size: var(--fs-10);
}

.footer-links a {
  color: var(--white_a70);
}

.footer-links a:hover,
.footer-links a:focus-visible {
  color: var(--white);
}

.footer-bottom-simple .social-list {
  justify-content: flex-start;
}

.footer-bottom-simple .copyright {
  grid-column: 1 / -1;
  text-align: center;
  font-size: var(--fs-11);
  color: var(--black);
}

/* RESPONSIVE ADJUSTMENTS */

@media (max-width: 991px) {
  .properties-layout {
    grid-template-columns: 1fr;
  }

  .properties-sidebar {
    position: static;
    order: -1;
  }

  .property-card {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .properties-hero {
    padding-block: 130px 30px;
  }

  .properties-top-filter {
    flex-direction: column;
    align-items: stretch;
  }

  .footer-bottom-layout {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .footer-bottom-simple .social-list {
    justify-content: center;
  }
}

/* ================================
   PROPERTIES PAGE – BASE (mobile first)
================================ */

.properties-hero {
  padding-block: 130px 30px;
}

.properties-hero .hero-content {
  max-width: 720px;
}

.properties-section {
  --section-padding: 60px;
  padding-block: 30px 60px;
}

.properties-layout {
  display: grid;
  grid-template-columns: 1fr;           /* stacked on mobile */
  gap: 30px;
  align-items: flex-start;
}

.properties-sidebar {
  position: static;
  border-radius: var(--radius-25);
  padding: 16px 16px 18px;
  background-color: rgba(255, 255, 255, 0.642);
  border: 1px solid gray;
}

.sidebar-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.properties-main {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.properties-top-filter {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  padding: 14px 14px;
  border-radius: var(--radius-25);
  border: 1px solid grey;
  background-color: rgba(255, 255, 255, 0.642);
}

.status-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.price-filter {
  min-width: 0;
}

.properties-grid {
  display: grid;
  gap: 20px;
}

.property-card {
  display: grid;
  grid-template-columns: 1fr;          /* image on top, text below */
  gap: 16px;
  padding: 16px 16px 18px;
  border-radius: var(--radius-25);
  border: 1px solid gray;
  background-color: rgba(255, 255, 255, 0.642);
  box-shadow: 0 18px 40px -24px rgba(0, 0, 0, 0.7);
}

.property-card .card-banner {
  border-radius: var(--radius-25);
  overflow: hidden;
}

.property-card .card-content {
  gap: 6px;
}

/* ================================
   Small phones (max-width: 360px)
================================ */

@media (max-width: 360px) {
  .properties-hero .hero-title {
    font-size: 2.4rem;
  }
  .hero-title{
    font-size: 2.4rem;
  }

  .hero-text{
    font-size: 0.6rem;
    font-weight: var(--fw-400);
  }

  .footer-logo{
    flex-direction: column;
  }
  .footer-link{
    justify-content: center;
  }

  .filter-chip,
  .filter-chip-type {
    font-size: 1.1rem;
    padding: 5px 10px;
  }

  .card-details {
    font-size: 1.2rem;
  }
}

/* ================================
   Mobile portrait (361px - 575px)
================================ */

@media (min-width: 361px) and (max-width: 575px) {
  .properties-hero .hero-title {
    font-size: 2.8rem;
  }

  .hero-title{
    font-size: 2.4rem;
  }
  .hero-text{
    font-size: 1rem;
  }

  .properties-layout {
    gap: 32px;
  }
}

/* ================================
   Tablet (576px - 767px)
================================ */

@media (min-width: 576px) and (max-width: 767px) {
  .properties-hero {
    padding-block: 140px 40px;
  }

  .properties-top-filter {
    flex-direction: column;
  }

  .properties-grid {
    gap: 22px;
  }

  .property-card {
    grid-template-columns: minmax(0, 260px) minmax(0, 1.3fr);
  }
}

/* ================================
   Tablet landscape & small laptop (768px - 991px)
================================ */

@media (min-width: 768px) and (max-width: 991px) {
  .properties-layout {
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 32px;
  }

  .properties-sidebar {
    position: sticky;
    top: 120px;
  }

  .properties-top-filter {
    flex-direction: row;
    align-items: center;
  }

  .properties-grid {
    gap: 24px;
  }

  .property-card {
    grid-template-columns: 240px minmax(0, 1fr);
  }
}

/* ================================
   Laptop (992px - 1199px)
================================ */

@media (min-width: 992px) and (max-width: 1199px) {
  .properties-hero {
    padding-block: 150px 50px;
  }

  .properties-layout {
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 36px;
  }

  .property-card {
    grid-template-columns: 260px minmax(0, 1fr);
    padding: 18px 20px 20px;
  }

  .card-header {
    align-items: center;
  }
}

/* ================================
   Large laptop (1200px+)
================================ */

@media (min-width: 1200px) and (max-width: 1399px) {
  .properties-hero {
    padding-block: 160px 60px;
  }

  .properties-layout {
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 40px;
  }

  .property-card {
    grid-template-columns: 280px minmax(0, 1fr);
  }
}

/* ================================
   Very large screens (1400px+)
================================ */

@media (min-width: 1400px) {
  .properties-hero {
    padding-block: 180px 70px;
  }

  .properties-layout {
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 44px;
  }

  .properties-grid {
    gap: 26px;
  }

  .property-card {
    grid-template-columns: 300px minmax(0, 1fr);
    padding: 22px 24px 24px;
  }
}

/* ================================
   Modal – already mobile‑first,
   keep existing enquire CSS
================================ */
/* Tablet landscape & small laptop (768px - 991px) */
@media (min-width: 768px) and (max-width: 991px) {

  .properties-hero {
    padding-block: 150px 40px;
  }

  .properties-hero .hero-title {
    font-size: 3.4rem;
  }

  .properties-hero .section-text {
    font-size: 1.6rem;
    max-width: 80%;
  }

  /* Layout: sidebar on top, content below */
  .properties-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .properties-sidebar {
    position: static;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px 18px;
  }

  .sidebar-filter {
    justify-content: flex-start;
  }

  .filter-chip-type {
    font-size: 1.3rem;
    padding: 6px 16px;
  }

  /* Top filters row */
  .properties-top-filter {
    flex-direction: row;
    align-items: center;
    gap: 14px 20px;
  }

  .status-filter {
    flex: 1 1 auto;
    justify-content: flex-start;
  }

  .filter-chip {
    font-size: 1.3rem;
    padding: 6px 14px;
  }

  .price-filter {
    flex: 0 0 260px;
  }

  .price-value {
    font-size: 1.3rem;
  }

  /* Cards: compact two-column layout */
  .properties-grid {
    gap: 22px;
  }

  .property-card {
    grid-template-columns: 230px minmax(0, 1fr);
    gap: 18px;
    padding: 16px 18px 18px;
  }

  .property-card .card-banner {
    border-radius: 18px;
  }

  .card-header {
    flex-direction: row;
    align-items: flex-start;
  }

  .card-title {
    font-size: 2.2rem;
  }

  .card-badges {
    justify-content: flex-end;
  }

  .card-details {
    font-size: 1.3rem;
  }

  .btn-primary {
    font-size: 1.3rem;
    padding: 8px 18px;
  }
}
.enquire-status {
  margin-top: 6px;
  font-size: 1.3rem;
}

.enquire-status.success {
  color: #4caf50; /* green */
}

.enquire-status.error {
  color: #ff5252; /* red */
}

/* =========================================
   HEADER VISIBILITY & STICKY FIX
========================================= */

/* 1. Make header visible with dark background */
.header {
  background-color: rgba(8, 8, 8, 0.24) !important; /* Dark background */
  backdrop-filter: blur(20px); /* Glass effect */
  -webkit-backdrop-filter: blur(10px);
  z-index: 999 !important; /* Ensure it's above everything */
  position: fixed !important; /* Force sticky on all devices */
  top: 0;
  left: 0;
  width: 100%;
  box-shadow: 0 2px 20px rgba(0,0,0,0.1);
}

/* When scrolled - make solid black */
.header.active {
  background-color: var(--eerie-black) !important;
  padding-block: 12px;
  box-shadow: 0 4px 30px rgba(0,0,0,0.3);
}

/* 2. Hamburger Menu - Ensure visible on mobile */
.nav-open-btn {
  display: flex !important; /* Always show on mobile */
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  background-color: rgba(255,255,255,0.1); /* Slight white bg */
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: var(--radius-5);
  cursor: pointer;
  transition: all 0.3s ease;
}

/* If menu icon is dark, make it white */
.nav-open-btn img {
  filter: brightness(0) invert(1); /* Makes SVG/icon white */
  width: 20px;
  height: 20px;
}

.nav-open-btn:hover {
  background-color: var(--radical-red);
  border-color: var(--radical-red);
}

/* 3. Desktop Navigation Visibility */
.desktop-nav {
  display: none; /* Hidden by default */
}

.desktop-nav-link {
  color: var(--white) !important; /* Ensure white text */
  text-shadow: 0 2px 4px rgba(0,0,0,0.3); /* Shadow for readability */
  font-size: var(--fs-9);
  font-weight: var(--fw-600);
  text-transform: capitalize;
  transition: color var(--transition-1);
  position: relative;
}

/* Show desktop nav only on desktop */
@media (min-width: 992px) {
  .nav-open-btn {
    display: none !important; /* Hide hamburger on desktop */
  }
  
  .desktop-nav {
    display: flex !important; /* Show horizontal menu */
    justify-items: center;
    align-items: center;
    margin-left: auto;
    margin-right: 40px;
  }
  
  .desktop-nav-list {
    display: flex;
    gap: 32px;
    list-style: none;
    align-items: center;
    margin: 0;
    padding: 0;
  }
  
  .desktop-nav-link::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: var(--radical-red);
    transition: width 0.3s ease;
  }
  
  .desktop-nav-link:hover::after {
    width: 100%;
  }
}

/* 4. Mobile/Tablet Behavior (≤991px) */
@media (max-width: 991px) {
  .desktop-nav {
    display: none !important; /* Hide desktop menu */
  }
  
  /* Mobile header hides when scrolling down (optional) */
  .header {
    transform: translateY(0);
    transition: transform 0.3s ease, background-color 0.3s ease;
  }
  
  /* Class added by JS when scrolling down */
  .header.hide-mobile {
    transform: translateY(-100%); /* Slide up to hide */
  }
  
  /* Ensure mobile sidebar menu is styled correctly */
  .navbar {
    z-index: 1000; /* Above header */
    
    right: -280px;
  }
  
 
}


/* BOOK AN APPOINTMENT */
.desktop-nav-cta {
  margin-left: 10px;
}

.btn-desktop-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 6px 22px;
  background-color: var(--radical-red);
  color: var(--white) !important;
  font-size: var(--fs-9);
  font-weight: var(--fw-500);
  border-radius: 999px; /* Pill shape */
  text-transform: capitalize;
  white-space: nowrap;
  transition: all 0.3s ease;
  border: 2px solid var(--radical-red);
  box-shadow: 0 4px 15px rgba(255, 29, 85, 0.2);
  text-shadow: none;
}

.btn-desktop-cta:hover {
  background-color: var(--white);
  color: var(--black) !important;
  border-color: var(--white);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(255, 29, 85, 0.4);
}

.btn-desktop-cta i {
  font-size: 1.4rem;
}

/* =========================================
   CORE SERVICES - ANIMATED CARDS
========================================= */

.core-services {
  --card-bg: rgba(255, 255, 255, 0.05);
  --card-border: rgba(84, 84, 84, 0.559);
  --hover-accent: var(--radical-red);
  
  position: relative;
  padding-block: 100px;
  background-color: rgba(255, 255, 255, 0.642);
  overflow: hidden;
}

.core-services .section-title {
  text-align: center;
  color: var(--black);
  margin-block-end: 60px;
  font-size: var(--fs-3);
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
  max-width: 1200px;
  margin-inline: auto;
}

/* Individual Card */
.service-card-hover {
  position: relative;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--card-border);
  border-radius: var(--radius-25);
  padding: 40px 35px;
  text-align: center;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  cursor: pointer;
  z-index: 1;
}

/* Animated Background Gradient on Hover */
.service-card-hover .hover-bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at 50% 0%, 
    rgba(255, 29, 85, 0.15) 0%, 
    transparent 70%
  );
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: -1;
  pointer-events: none;
}

/* Icon Container */
.service-icon-wrap {
  width: 80px;
  height: 80px;
  margin-inline: auto;
  margin-block-end: 25px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.05) 100%);
  border: 1px solid var(--white_a15);
  border-radius: var(--radius-circle);
  position: relative;
  transition: all 0.3s ease;
}

.service-icon-wrap i {
  font-size: 2.8rem;
  color: var(--black);
  transition: all 0.3s ease;
}

/* Service Title */
.service-card-hover .service-title {
  color: var(--black);
  font-size: var(--fs-5);
  margin-block-end: 12px;
  font-weight: var(--fw-400);
  transition: color 0.3s ease;
}

/* Description */
.service-desc {
  color: var(--black);
  font-size: var(--fs-9);
  line-height: 1.6;
  margin-block-end: 25px;
  font-weight: var(--fw-300);
  max-width: 280px;
  margin-inline: auto;
}

/* Know More Link */
.know-more-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--radical-red);
  font-size: var(--fs-10);
  font-weight: var(--fw-500);
  text-transform: uppercase;
  letter-spacing: 1px;
  position: relative;
  transition: all 0.3s ease;
  text-decoration: none;
}

.know-more-link i {
  font-size: 1.2rem;
  transition: transform 0.3s ease;
}

/* Underline animation */
.know-more-link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 1px;
  background-color: var(--radical-red);
  transition: width 0.3s ease;
}

/* =========================================
   HOVER ANIMATIONS
========================================= */

/* Card Lift & Shadow */
.service-card-hover:hover {
  transform: translateY(-10px);
  border-color: rgba(255, 29, 85, 0.3);
  box-shadow: 
    0 20px 40px rgba(0, 0, 0, 0.3),
    0 0 30px rgba(255, 29, 85, 0.1);
}

.service-card-hover:hover .hover-bg {
  opacity: 1;
}

/* Icon Animation - Scale & Glow */
.service-card-hover:hover .service-icon-wrap {
  background: var(--radical-red);
  border-color: var(--radical-red);
  transform: scale(1.05);
  box-shadow: 0 10px 30px rgba(255, 29, 85, 0.3);
}

.service-card-hover:hover .service-icon-wrap i {
  color: var(--white);
  transform: scale(1.1) rotate(-5deg);
}

/* Title Color Shift */
.service-card-hover:hover .service-title {
  color: var(--radical-red);
}

/* Know More Animation */
.service-card-hover:hover .know-more-link {
  color: var(--black);
}

.service-card-hover:hover .know-more-link::after {
  width: 100%;
}

.service-card-hover:hover .know-more-link i {
  transform: translateX(5px);
}

/* Stagger Animation on Scroll Reveal */
.service-card-hover[data-reveal] {
  transform: translateY(30px);
  opacity: 0;
  transition: 
    transform 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275),
    opacity 0.6s ease;
}

.service-card-hover[data-reveal].revealed {
  transform: translateY(0);
  opacity: 1;
}

/* Stagger delays for grid items */
.service-card-hover[data-reveal]:nth-child(1) { transition-delay: 0.1s; }
.service-card-hover[data-reveal]:nth-child(2) { transition-delay: 0.2s; }
.service-card-hover[data-reveal]:nth-child(3) { transition-delay: 0.3s; }

/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 991px) {
  .services-grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 25px;
  }
  
  .service-card-hover {
    padding: 35px 28px;
  }
}

@media (max-width: 575px) {
  .core-services .section-title {
    font-size: var(--fs-4);
  }
  
  .services-grid {
    grid-template-columns: 1fr;
    max-width: 400px;
  }
  
  .service-icon-wrap {
    width: 70px;
    height: 70px;
  }
  
  .service-icon-wrap i {
    font-size: 2.4rem;
  }
}

/* =========================================
   WHY CHOOSE US - INTERACTIVE SECTION
========================================= */

.why-us {
  position: relative;
  padding-block: 120px;
  background-color: var(--white_a80);
  overflow: hidden;
  isolation: isolate;
}

.why-us .section-subtitle {
  color: var(--radical-red);
  margin-block-end: 15px;
  font-size: var(--fs-9);
  text-transform: uppercase;
  letter-spacing: 3px;
}

.why-us .section-title {
  color: var(--black);
  margin-block-end: 50px;
  font-size: var(--fs-3);
  line-height: 1.2;
}

.why-us-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 80px;
  align-items: center;
  position: relative;
  z-index: 2;
}

/*-----------------------------------*\
  #Left Content - Animated List
\*-----------------------------------*/

.why-list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.why-item {
  position: relative;
  padding: 25px 0;
  padding-left: 80px;
  border-bottom: 1px solid rgba(2, 2, 2, 0.1);
  cursor: pointer;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  opacity: 0;
  transform: translateX(-30px);
}

.why-item.active {
  opacity: 1;
  transform: translateX(0);
}

.why-item:first-child {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}

/* Stagger delays */
.why-item:nth-child(1) { transition-delay: 0.1s; }
.why-item:nth-child(2) { transition-delay: 0.2s; }
.why-item:nth-child(3) { transition-delay: 0.3s; }
.why-item:nth-child(4) { transition-delay: 0.3.5s; }

/* Hover State */
.why-item:hover {
  background: linear-gradient(90deg, rgba(255,29,85,0.05) 0%, transparent 100%);
  padding-left: 90px;
}

/* Icon Container */
.why-icon {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 60px;
  height: 60px;
  background: rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 50%;
  display: grid;
  place-items: center;
  transition: all 0.4s ease;
  z-index: 2;
}

.why-icon i {
  font-size: 2rem;
  color: var(--black);
  transition: all 0.3s ease;
}

/* Pulse Ring Animation */
.icon-pulse {
  position: absolute;
  inset: -5px;
  border: 2px solid var(--radical-red);
  border-radius: 50%;
  opacity: 0;
  transform: scale(0.8);
  transition: all 0.4s ease;
}

/* Hover Effects */
.why-item:hover .why-icon {
  background: var(--radical-red);
  border-color: var(--radical-red);
  transform: translateY(-50%) scale(1.1);
  box-shadow: 0 10px 30px rgba(255, 29, 85, 0.3);
}

.why-item:hover .icon-pulse {
  opacity: 1;
  transform: scale(1.2);
  animation: pulse-ring 1.5s infinite;
}

@keyframes pulse-ring {
  0% { transform: scale(1); opacity: 1; }
  100% { transform: scale(1.4); opacity: 0; }
}

.why-item:hover .why-icon i {
  color: var(--black);
  transform: scale(1.1);
}

/* Text Content */
.why-title {
  color: var(--black);
  font-size: var(--fs-6);
  margin-block-end: 8px;
  font-weight: var(--fw-400);
  transition: color 0.3s ease;
}

.why-item:hover .why-title {
  color: var(--radical-red);
}

.why-desc {
  color: var(--black);
  font-size: var(--fs-10);
  line-height: 1.6;
  font-weight: var(--fw-300);
  max-width: 90%;
  transition: all 0.3s ease;
}

.why-item:hover .why-desc {
  color: rgba(0, 0, 0, 0.9);
}

/* Connecting Line to Image */
.connector-line {
  position: absolute;
  top: 50%;
  right: -40px;
  width: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--radical-red), transparent);
  transition: width 0.6s ease;
  opacity: 0;
}

.why-item:hover .connector-line {
  width: 60px;
  opacity: 1;
}

/*-----------------------------------*\
  #Right Visual - Interactive Image
\*-----------------------------------*/

.why-us-visual {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.image-container {
  position: relative;
  width: 100%;
  max-width: 500px;
}

.image-frame {
  position: relative;
  border-radius: var(--radius-25);
  overflow: hidden;
  aspect-ratio: 4/5;
  box-shadow: 0 30px 60px rgba(0,0,0,0.4);
  border: 1px solid rgba(255,255,255,0.1);
  transition: transform 0.6s ease;
}

.why-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.1);
  transition: transform 1.2s ease;
}

.image-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,0.6) 100%);
  opacity: 0.6;
  transition: opacity 0.4s ease;
}

/* Floating Badge */
.floating-badge {
  position: absolute;
  bottom: 30px;
  left: -30px;
  background: var(--radical-red);
  padding: 20px 25px;
  border-radius: var(--radius-5);
  box-shadow: 0 15px 40px rgba(255,29,85,0.3);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  z-index: 3;
  transition: transform 0.4s ease;
  animation: float 3s ease-in-out infinite;
}

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

.badge-number {
  font-family: var(--ff-recoleta);
  font-size: var(--fs-2);
  color: var(--white);
  line-height: 1;
}

.badge-text {
  font-size: var(--fs-11);
  color: rgba(5, 5, 5, 0.9);
  text-transform: uppercase;
  letter-spacing: 1px;
  text-align: center;
  line-height: 1.4;
}

/* Decorative Elements */
.decor-circle {
  position: absolute;
  top: -50px;
  right: -50px;
  width: 150px;
  height: 150px;
  border: 1px solid rgba(255,29,85,0.2);
  border-radius: 50%;
  z-index: -1;
  animation: rotate-slow 20s linear infinite;
}

@keyframes rotate-slow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.decor-line {
  position: absolute;
  bottom: 50px;
  right: -100px;
  width: 200px;
  height: 1px;
  background: rgba(255,255,255,0.1);
  transform: rotate(-45deg);
}

/* Interactive Image States */
.why-us:hover .why-image {
  transform: scale(1);
}

.why-item:hover ~ .why-us-visual .why-image,
.why-us:has(.why-item:hover) .why-image {
  filter: brightness(0.7);
}

/* Individual item connection to image */
.why-item:nth-child(1):hover ~ .why-us-visual .image-frame { transform: translateY(-5px); }
.why-item:nth-child(2):hover ~ .why-us-visual .image-frame { transform: translateY(-2px); }
.why-item:nth-child(3):hover ~ .why-us-visual .image-frame { transform: translateY(2px); }
.why-item:nth-child(4):hover ~ .why-us-visual .image-frame { transform: translateY(5px); }

/*-----------------------------------*\
  #Background Accent
\*-----------------------------------*/

.why-bg-accent {
  position: absolute;
  top: 50%;
  left: 0;
  width: 40%;
  height: 60%;
  background: radial-gradient(circle, rgba(255,29,85,0.08) 0%, transparent 70%);
  transform: translateY(-50%);
  pointer-events: none;
  z-index: 0;
}

/*-----------------------------------*\
  #Responsive
\*-----------------------------------*/

@media (max-width: 991px) {
  .why-us-grid {
    grid-template-columns: 1fr;
    gap: 60px;
  }
  
  .why-us-visual {
    order: -1;
    max-width: 400px;
    margin-inline: auto;
  }
  
  .image-frame {
    aspect-ratio: 16/10;
  }
  
  .floating-badge {
    left: 20px;
    bottom: 20px;
  }
  
  .decor-circle,
  .connector-line {
    display: none;
  }
}

@media (max-width: 575px) {
  .why-us {
    padding-block: 80px;
  }
  
  .why-item {
    padding-left: 65px;
  }
  
  .why-icon {
    width: 50px;
    height: 50px;
  }
  
  .why-icon i {
    font-size: 1.6rem;
  }
  
  .floating-badge {
    padding: 15px 20px;
  }
  
  .badge-number {
    font-size: var(--fs-4);
  }
}

/* =========================================
   PARTNERS SECTION - LIGHT MODE INFINITE SCROLL
========================================= */

.partners {
  position: relative;
  padding-block: 80px;
  background-color: #f8f8f8; /* Light background */
  overflow: hidden;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.partners .section-title {
  text-align: center;
  color: #1a1a1a; /* Dark text for light mode */
  font-size: var(--fs-4);
  margin-block-end: 50px;
  font-weight: var(--fw-400);
}

/* Marquee Container */
.marquee-wrapper {
  position: relative;
  width: 100%;
  overflow: hidden;
  mask-image: linear-gradient(
    to right,
    transparent,
    black 10%,
    black 90%,
    transparent
  );
  -webkit-mask-image: linear-gradient(
    to right,
    transparent,
    black 10%,
    black 90%,
    transparent
  );
}

/* Track that moves */
.marquee-track {
  display: flex;
  align-items: center;
  gap: 60px; /* Space between logos */
  width: max-content; /* Important: allows content to extend */
  animation: scroll-infinite 10s linear infinite;
}

/* Individual logo container */
.logo-item {
  flex-shrink: 0;
  padding: 20px 40px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.06);
  transition: all 0.3s ease;
  filter: grayscale(100%);
  opacity: 0.7;
}

.logo-item:hover {
  filter: grayscale(0%);
  opacity: 1;
  transform: translateY(-3px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
  border-color: rgba(0, 0, 0, 0.1);
}

/* Logo images */
.partner-logo {
  height: 40px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  display: block;
}

/* Infinite scroll animation */
@keyframes scroll-infinite {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%); /* Move exactly half (first set of logos) */
  }
}

/* Pause on hover */
.marquee-wrapper:hover .marquee-track {
  animation-play-state: paused;
}

/* Alternative: Gradient fade edges (visual polish) */
.marquee-fade-left,
.marquee-fade-right {
  position: absolute;
  top: 0;
  width: 150px;
  height: 100%;
  pointer-events: none;
  z-index: 2;
}

.marquee-fade-left {
  left: 0;
  background: linear-gradient(to right, #f8f8f8 0%, transparent 100%);
}

.marquee-fade-right {
  right: 0;
  background: linear-gradient(to left, #f8f8f8 0%, transparent 100%);
}

/* Responsive Adjustments */
@media (max-width: 991px) {
  .marquee-track {
    gap: 30px;
     width: max-content;
  }
  
  .logo-item {
    padding: 15px 30px;
  }
  
  .partner-logo {
    height: 35px;
    max-width: 120px;
  }
  
  @keyframes scroll-infinite {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }
}

@media (max-width: 575px) {
  .partners {
    padding-block: 60px;
  }
  
  .partners .section-title {
    font-size: var(--fs-5);
    margin-block-end: 35px;
  }
  
  .marquee-track {
    gap: 20px;
    animation-duration: 13s; /* Faster on mobile */
     width: max-content;
  }
  
  .logo-item {
    padding: 12px 24px;
    border-radius: 8px;
  }
  
  .partner-logo {
    height: 30px;
    max-width: 100px;
  }
  
  .marquee-fade-left,
  .marquee-fade-right {
    width: 80px;
  }
}

/* =========================================
   PROCESS FLOW - LIGHT MODE SCROLL ANIMATED
========================================= */

.process-flow {
  position: relative;
  padding-block: 100px;
  background-color: #ffffff; /* Light mode */
  overflow: hidden;
}

.process-flow .section-title {
  text-align: center;
  color: #1a1a1a; /* Dark text for light mode */
  margin-block-end: 60px;
  font-size: var(--fs-3);
  font-weight: var(--fw-400);
}

/* Container Layout */
.process-container {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 20px;
  max-width: 1100px;
  margin-inline: auto;
  position: relative;
}

/* Individual Step */
.process-step {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* Staggered reveal delays */
.process-step[data-reveal]:nth-child(1) { transition-delay: 0.1s; }
.process-step[data-reveal]:nth-child(3) { transition-delay: 0.3s; } /* Skip arrows */
.process-step[data-reveal]:nth-child(5) { transition-delay: 0.5s; }
.process-step[data-reveal]:nth-child(7) { transition-delay: 0.7s; }

.process-step.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Indicator (Circle + Connector) */
.step-indicator {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  margin-block-end: 20px;
}

/* Circle */
.step-circle {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: #ffffff;
  border: 3px solid #e0e0e0;
  display: grid;
  place-items: center;
  position: relative;
  z-index: 2;
  transition: all 0.4s ease;
  box-shadow: 0 4px 15px rgba(0,0,0,0.08);
  flex-shrink: 0;
}

.step-number {
  font-family: var(--ff-recoleta);
  font-size: var(--fs-5);
  color: #999;
  font-weight: var(--fw-400);
  transition: all 0.3s ease;
}

.step-check {
  position: absolute;
  width: 28px;
  height: 28px;
  fill: var(--radical-red);
  transform: scale(0);
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* Connector Lines */
.step-connector {
  flex: 1;
  height: 3px;
  position: relative;
  margin-inline: 10px;
}

.connector-line {
  position: absolute;
  inset: 0;
  background: #e0e0e0;
  border-radius: 3px;
}

.connector-progress {
  position: absolute;
  inset: 0;
  background: var(--radical-red);
  border-radius: 3px;
  width: 0%;
  transition: width 0.8s ease 0.3s;
}

/* Final step no connector */
.process-step:last-child .step-connector {
  display: none;
}

/* Content */
.step-content {
  text-align: center;
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.4s ease 0.2s;
}

.process-step.revealed .step-content {
  opacity: 1;
  transform: translateY(0);
}

.step-title {
  color: #1a1a1a;
  font-size: var(--fs-7);
  font-weight: var(--fw-500);
  margin-block-end: 5px;
}

.step-desc {
  color: #666;
  font-size: var(--fs-10);
  font-weight: var(--fw-300);
  line-height: 1.4;
}

/* Arrow Icons (Desktop) */
.process-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ccc;
  font-size: 1.2rem;
  margin-top: 20px;
  opacity: 0;
  transform: translateX(-10px);
  transition: all 0.4s ease;
}

.process-arrow.revealed {
  opacity: 1;
  transform: translateX(0);
}

/* Active/Hover States */
.process-step:hover .step-circle {
  border-color: var(--radical-red);
  transform: scale(1.1);
  box-shadow: 0 8px 25px rgba(255, 29, 85, 0.2);
}

.process-step:hover .step-number {
  color: var(--radical-red);
}

/* Animated Progress on Scroll */
.process-step.revealed .connector-progress {
  width: 100%;
}

.process-step.revealed .step-check {
  transform: scale(0); /* Hidden by default */
}

.process-step.completed .step-check {
  transform: scale(1);
}

.process-step.completed .step-number {
  opacity: 0;
}

.process-step.completed .step-circle {
  border-color: var(--radical-red);
  background: rgba(255, 29, 85, 0.05);
}

/* Background Decoration */
.process-flow::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(255,29,85,0.03) 0%, transparent 70%);
  pointer-events: none;
}

/* =========================================
   RESPONSIVE - MOBILE LAYOUT
========================================= */

@media (max-width: 991px) {
  .process-container {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    max-width: 500px;
  }

  .process-arrow {
    display: none; /* Hide arrows on mobile */
  }

  .process-step {
    flex-direction: row;
    align-items: flex-start;
    width: 100%;
    padding-block: 20px;
    gap: 25px;
  }

  .step-indicator {
    flex-direction: column;
    width: auto;
    margin-block-end: 0;
    height: 100%;
  }

  .step-circle {
    width: 60px;
    height: 60px;
    order: 1;
  }

  .step-connector {
    width: 3px;
    height: 60px;
    margin: 10px 0;
    order: 2;
  }

  .connector-line,
  .connector-progress {
    width: 100% !important;
    height: 100%;
  }

  .connector-progress {
    width: 100%;
    height: 0%;
    transition: height 0.6s ease;
  }

  .process-step.revealed .connector-progress {
    height: 100%;
  }

  /* Last step connector adjustment */
  .process-step:not(:last-child) .step-indicator::after {
    content: '';
    position: absolute;
    top: 70px;
    left: 50%;
    transform: translateX(-50%);
    width: 3px;
    height: calc(100% + 40px);
    background: #e0e0e0;
    z-index: 0;
  }

  .step-content {
    text-align: left;
    padding-top: 10px;
  }

  .step-title {
    font-size: var(--fs-6);
  }
}

@media (max-width: 575px) {
  .process-flow {
    padding-block: 60px;
  }

  .process-flow .section-title {
    font-size: var(--fs-4);
    margin-block-end: 40px;
  }

  .step-circle {
    width: 50px;
    height: 50px;
    border-width: 2px;
  }

  .step-number {
    font-size: var(--fs-6);
  }

  .step-title {
    font-size: var(--fs-7);
  }

  .step-desc {
    font-size: 1.3rem;
  }
}

/* =========================================
   CTA SECTION - CALL TO ACTION
========================================= */

.cta-section {
  position: relative;
  padding-block: 120px;
  background-color: var(--white_a80); /* Dark background for contrast */
  overflow: hidden;
  text-align: center;
}

.cta-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle at 50% 50%, rgba(255,29,85,0.1) 0%, transparent 60%);
  pointer-events: none;
}

.cta-block {
  position: relative;
  z-index: 2;
  max-width: 800px;
  margin-inline: auto;
  padding: 60px 40px;
  background: rgba(3, 3, 3, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-25);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
  opacity: 0;
  transform: translateY(30px) scale(0.95);
  transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.cta-block.revealed {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* Title & Subtitle */
.cta-title {
  color: var(--black);
  font-size: var(--fs-3);
  margin-block-end: 15px;
  font-weight: var(--fw-400);
  line-height: 1.2;
}

.cta-subtitle {
  color: var(--black);
  font-size: var(--fs-9);
  margin-block-end: 40px;
  font-weight: var(--fw-300);
}

/* Buttons Container */
.cta-buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  margin-block-end: 40px;
}

/* Base Button Styles */
.btn-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 28px;
  font-size: var(--fs-10);
  font-weight: var(--fw-500);
  text-transform: capitalize;
  border-radius: 999px;
  text-decoration: none;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  min-width: 180px;
  border: 2px solid transparent;
}

.btn-cta:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}

.btn-icon-wrap {
  font-size: 1.4rem;
  transition: transform 0.3s ease;
}

.btn-cta:hover .btn-icon-wrap {
  transform: scale(1.1) rotate(-5deg);
}

/* Button 1: Primary (Red) */
.btn-primary-cta {
  background-color: var(--radical-red);
  color: var(--white);
  border-color: var(--radical-red);
}

.btn-primary-cta:hover {
  background-color: transparent;
  color: var(--radical-red);
  box-shadow: 0 10px 30px rgba(255, 29, 85, 0.3);
}

.btn-primary-cta .btn-shine {
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
  transition: left 0.5s ease;
}

.btn-primary-cta:hover .btn-shine {
  left: 100%;
}

/* Button 2: Secondary (White Outline) */
.btn-secondary-cta {
  background-color: transparent;
  color: var(--black);
  border-color: var(--black);
}

.btn-secondary-cta:hover {
  background-color: var(--white);
  color: var(--black);
  border-color: var(--white);
  box-shadow: 0 10px 30px rgba(255, 255, 255, 0.2);
}

/* Button 3: WhatsApp (Green) */
.btn-whatsapp {
  background-color: #25D366;
  color: var(--white);
  border-color: #25D366;
}

.btn-whatsapp:hover {
  background-color: transparent;
  color: #25D366;
  box-shadow: 0 10px 30px rgba(37, 211, 102, 0.3);
}

/* Trust Badges */
.cta-trust {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
  flex-wrap: wrap;
  margin-top: 30px;
  padding-top: 30px;
  border-top: 1px solid rgba(255,255,255,0.1);
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.6s ease 0.4s;
}

.cta-trust.revealed {
  opacity: 1;
  transform: translateY(0);
}

.trust-item {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--black);
  font-size: var(--fs-11);
  font-weight: var(--fw-400);
}

.trust-item i {
  color: var(--radical-red);
  font-size: 1.2rem;
}

/* Background Decorative Shapes */
.cta-bg-shape {
  position: absolute;
  border-radius: 50%;
  opacity: 0.1;
  pointer-events: none;
  animation: float-cta 6s ease-in-out infinite;
}

.cta-bg-shape.shape-1 {
  width: 300px;
  height: 300px;
  background: var(--radical-red);
  top: -150px;
  left: -100px;
  animation-delay: 0s;
}

.cta-bg-shape.shape-2 {
  width: 200px;
  height: 200px;
  background: var(--white);
  bottom: -100px;
  right: -50px;
  animation-delay: 3s;
}

@keyframes float-cta {
  0%, 100% { transform: translateY(0) scale(1); opacity: 0.1; }
  50% { transform: translateY(-20px) scale(1.1); opacity: 0.15; }
}

.cta-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,29,85,0.05) 0%, transparent 50%, rgba(0,0,0,0.3) 100%);
  pointer-events: none;
}

/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 768px) {
  .cta-section {
    padding-block: 80px;
    padding-inline: 20px;
  }

  .cta-block {
    padding: 40px 25px;
  }

  .cta-title {
    font-size: var(--fs-4);
  }

  .cta-buttons {
    flex-direction: column;
    width: 100%;
    gap: 15px;
  }

  .btn-cta {
    width: 100%;
    max-width: 300px;
    padding: 14px 24px;
  }

  .cta-trust {
    gap: 20px;
    flex-direction: column;
  }

  .trust-item {
    font-size: 1.3rem;
  }
}

@media (max-width: 480px) {
  .cta-title {
    font-size: 2.8rem;
  }

  .cta-subtitle {
    font-size: 1.5rem;
  }

  .btn-cta {
    min-width: unset;
    width: 100%;
  }
}

/* =========================================
   ANIMATED FOOTER - DARK MODE
========================================= */

.footer-animated {
  position: relative;
  background-color: var(--eerie-black);
  color: var(--white);
  overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

/* Background Glow */
.footer-bg-glow {
  position: absolute;
  top: -50%;
  left: 50%;
  transform: translateX(-50%);
  width: 80%;
  height: 100%;
  background: radial-gradient(circle, rgba(255,29,85,0.08) 0%, transparent 70%);
  pointer-events: none;
  opacity: 0.5;
}

/* Footer Top Section */
.footer-top {
  padding-block: 100px 60px;
  position: relative;
  z-index: 2;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1.2fr 1fr;
  gap: 60px;
  align-items: start;
}

/* Column Heading */
.footer-heading {
  font-family: var(--ff-recoleta);
  font-size: var(--fs-7);
  font-weight: var(--fw-400);
  color: var(--white);
  margin-block-end: 25px;
  position: relative;
  display: inline-block;
}

.footer-heading::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 0;
  width: 40px;
  height: 2px;
  background: var(--radical-red);
  transition: width 0.3s ease;
}

.footer-col:hover .footer-heading::after {
  width: 60px;
}

/* Column 1: Brand */
.footer-brand {
  position: relative;
}

.footer-logo-wrap {
  position: relative;
  display: inline-block;
  margin-block-end: 20px;
}

.footer-logo {
  display: flex;
  align-items: center;
  gap: 15px;
  text-decoration: none;
  position: relative;
  z-index: 2;
}

.footer-logo img {
  width: 50px;
  height: 50px;
  transition: transform 0.3s ease;
}

.logo-text {
  font-family: var(--ff-recoleta);
  font-size: var(--fs-5);
  color: var(--white);
  font-weight: var(--fw-400);
  letter-spacing: 0.5px;
}

.logo-glow {
  position: absolute;
  top: 50%;
  left: 25px;
  transform: translate(-50%, -50%);
  width: 80px;
  height: 80px;
  background: var(--radical-red);
  border-radius: 50%;
  filter: blur(40px);
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: 1;
}

.footer-brand:hover .logo-glow {
  opacity: 0.3;
}

.footer-logo:hover img {
  transform: scale(1.05) rotate(5deg);
}

.footer-tagline {
  color: var(--white_a70);
  font-size: var(--fs-10);
  line-height: 1.8;
  margin-block-end: 25px;
  font-weight: var(--fw-300);
  max-width: 300px;
}

.footer-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-5);
  font-size: var(--fs-11);
  color: var(--white);
  transition: all 0.3s ease;
}

.footer-badge i {
  color: var(--radical-red);
  font-size: 1.2rem;
}

.footer-badge:hover {
  background: rgba(255,29,85,0.1);
  border-color: var(--radical-red);
  transform: translateX(5px);
}

/* Column 2: Services Links */
.footer-links {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer-link {
  display: flex;
  /* justify-content: space-between; */
  align-items: center;
  padding: 10px 0;
  color: var(--white_a70);
  text-decoration: none;
  font-size: var(--fs-10);
  font-weight: var(--fw-300);
  position: relative;
  transition: all 0.3s ease;
  overflow: hidden;
}

.footer-link::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--radical-red);
  transition: width 0.3s ease;
}

.footer-link i {
  font-size: 0.9rem;
  opacity: 0;
  transform: translateX(-10px);
  transition: all 0.3s ease;
  color: var(--radical-red);
}

.footer-link:hover {
  color: var(--white);
  padding-left: 5px;
}

.footer-link:hover::before {
  width: 100%;
}

.footer-link:hover i {
  opacity: 1;
  transform: translateX(0);
}

/* Column 3: Contact */
.contact-list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.contact-item {
  display: flex;
  gap: 15px;
  align-items: flex-start;
}

.contact-icon {
  width: 40px;
  height: 40px;
  min-width: 40px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--radical-red);
  font-size: 1.1rem;
  transition: all 0.3s ease;
}

.contact-item:hover .contact-icon {
  background: var(--radical-red);
  color: var(--white);
  transform: scale(1.1);
  box-shadow: 0 0 20px rgba(255,29,85,0.3);
}

.contact-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.contact-info .label {
  font-size: 1.1rem;
  color: var(--white_a50);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.contact-info address,
.contact-info a,
.contact-info span {
  color: var(--white_a80);
  font-size: var(--fs-10);
  font-style: normal;
  line-height: 1.5;
  text-decoration: none;
  transition: color 0.3s ease;
}

.contact-info a:hover {
  color: var(--radical-red);
}

/* Column 4: Social */
.social-text {
  color: var(--white_a60);
  font-size: var(--fs-10);
  line-height: 1.6;
  margin-block-end: 25px;
}

.social-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-block-end: 30px;
}

.social-icon-box {
  position: relative;
  aspect-ratio: 1;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-5);
  display: grid;
  place-items: center;
  color: var(--white);
  font-size: 1.3rem;
  text-decoration: none;
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.social-glow {
  position: absolute;
  inset: 0;
  background: var(--radical-red);
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 0;
}

.social-icon-box i {
  position: relative;
  z-index: 2;
  transition: transform 0.3s ease;
}

.social-icon-box:hover {
  transform: translateY(-5px);
  border-color: transparent;
  color: var(--white);
}

.social-icon-box:hover .social-glow {
  opacity: 1;
}

.social-icon-box:hover i {
  transform: scale(1.2);
}

.social-icon-box.whatsapp:hover .social-glow {
  background: #25D366;
}

.social-icon-box.youtube:hover .social-glow {
  background: #FF0000;
}

/* Tooltip */
.social-icon-box::before {
  content: attr(data-tooltip);
  position: absolute;
  top: -35px;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  background: var(--white);
  color: var(--black);
  padding: 5px 10px;
  border-radius: 4px;
  font-size: 1.1rem;
  font-weight: var(--fw-500);
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  pointer-events: none;
}

.social-icon-box::after {
  content: '';
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  border: 6px solid transparent;
  border-top-color: var(--white);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.social-icon-box:hover::before,
.social-icon-box:hover::after {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

/* Newsletter Mini Form */
.newsletter-mini p {
  color: var(--white_a60);
  font-size: 1.2rem;
  margin-block-end: 10px;
}

.newsletter-form {
  display: flex;
  gap: 0;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-5);
  overflow: hidden;
  transition: border-color 0.3s ease;
}

.newsletter-form:focus-within {
  border-color: var(--radical-red);
}

.newsletter-form input {
  flex: 1;
  padding: 12px 15px;
  background: transparent;
  border: none;
  color: var(--white);
  font-size: var(--fs-10);
  outline: none;
}

.newsletter-form input::placeholder {
  color: var(--white_a50);
}

.newsletter-form button {
  padding: 0 18px;
  background: var(--radical-red);
  border: none;
  color: var(--white);
  cursor: pointer;
  transition: background 0.3s ease;
}

.newsletter-form button:hover {
  background: #ff2a5c;
}

.newsletter-form button i {
  font-size: 1.2rem;
  transition: transform 0.3s ease;
}

.newsletter-form button:hover i {
  transform: translateX(3px) rotate(-45deg);
}

/* Footer Bottom */
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.05);
  padding-block: 30px;
  position: relative;
  z-index: 2;
  background: rgba(0,0,0,0.2);
}

.footer-bottom-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
}

.copyright {
  color: var(--white_a50);
  font-size: var(--fs-11);
  font-weight: var(--fw-300);
  margin: 0;
}

.footer-bottom-links {
  display: flex;
  align-items: center;
  gap: 15px;
  font-size: var(--fs-11);
}

.footer-bottom-links a {
  color: var(--white_a60);
  text-decoration: none;
  transition: color 0.3s ease;
  position: relative;
}

.footer-bottom-links a:hover {
  color: var(--radical-red);
}

.separator {
  color: var(--white_a30);
  font-size: 1rem;
}

/* Back to Top Button Integrated */
.footer-back-top {
  position: absolute;
  right: 40px;
  top: 50%;
  transform: translateY(-50%);
  width: 45px;
  height: 45px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--white);
  text-decoration: none;
  transition: all 0.3s ease;
  overflow: hidden;
}

.footer-back-top i {
  transition: transform 0.3s ease;
}

.footer-back-top:hover {
  background: var(--radical-red);
  border-color: var(--radical-red);
  color: var(--white);
  transform: translateY(-50%) translateY(-3px);
  box-shadow: 0 5px 15px rgba(255,29,85,0.3);
}

.footer-back-top:hover i {
  transform: translateY(-3px);
}

/* Scroll Reveal Animations */
.footer-col[data-reveal] {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.footer-col[data-reveal="left"] {
  transform: translateX(-30px);
}

.footer-col[data-reveal="right"] {
  transform: translateX(30px);
}

.footer-col.revealed {
  opacity: 1;
  transform: translate(0);
}

/* Stagger delays */
.footer-col[data-reveal]:nth-child(1) { transition-delay: 0.1s; }
.footer-col[data-reveal]:nth-child(2) { transition-delay: 0.2s; }
.footer-col[data-reveal]:nth-child(3) { transition-delay: 0.3s; }
.footer-col[data-reveal]:nth-child(4) { transition-delay: 0.4s; }

/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 1200px) {
  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 50px;
  }
  
  .footer-brand {
    grid-column: 1 / -1;
    text-align: center;
  }
  
  .footer-tagline {
    max-width: 500px;
    margin-inline: auto;
  }
  
  .footer-logo-wrap {
    margin-inline: auto;
  }
}

@media (max-width: 768px) {
  .footer-top {
    padding-block: 60px 40px;
  }
  
  .footer-grid {
    grid-template-columns: 1fr;
    gap: 40px;
    text-align: center;
  }
  
  .footer-heading {
    margin-inline: auto;
  }
  
  .footer-heading::after {
    left: 50%;
    transform: translateX(-50%);
  }
  
  .footer-col:hover .footer-heading::after {
    left: 50%;
    transform: translateX(-50%);
    width: 40px;
  }
  
  .contact-item {
    justify-content: center;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  
  .social-grid {
    max-width: 250px;
    margin-inline: auto;
  }
  
  .newsletter-form {
    max-width: 300px;
    margin-inline: auto;
  }
  
  .footer-bottom-content {
    flex-direction: column;
    text-align: center;
  }
  
  .footer-back-top {
    position: relative;
    right: auto;
    top: auto;
    transform: none;
    margin-top: 20px;
    margin-inline: auto;
  }
  
  .footer-back-top:hover {
    transform: translateY(-3px);
  }
}

@media (max-width: 480px) {
  .social-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  
  .footer-bottom-links {
    flex-wrap: wrap;
    justify-content: center;
  }
}


/*-----------------------------------*\
#HERO LOCATION CHIPS
\*-----------------------------------*/

.hero-chips-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px;
  margin-top: 25px;
  max-width: 800px;
  margin-inline: auto;
  padding-inline: 20px;
}

.location-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 20px;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 999px;
  color: var(--black);
  font-size: var(--fs-10);
  font-weight: var(--fw-500);
  letter-spacing: 0.5px;
  text-transform: capitalize;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.location-chip::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,29,85,0.2) 0%, transparent 100%);
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: -1;
}

.location-chip:hover {
  background: rgba(255, 255, 255, 0.25);
  border-color: var(--radical-red);
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}

.location-chip:hover::before {
  opacity: 1;
}

.location-chip:active {
  transform: translateY(-1px) scale(0.98);
}

/* Icon before text (optional - add if you want location icons) */
.location-chip::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
  transition: left 0.5s ease;
}

.location-chip:hover::after {
  left: 100%;
}

/*-----------------------------------*\
#HERO CHIPS RESPONSIVE
\*-----------------------------------*/

@media (max-width: 768px) {
  .hero-chips-container {
    gap: 8px;
    margin-top: 20px;
  }
  
  .location-chip {
    padding: 8px 16px;
    font-size: 1.2rem;
  }
}

@media (max-width: 480px) {
  .hero-chips-container {
    gap: 6px;
    margin-top: 15px;
    padding-inline: 10px;
  }
  
  .location-chip {
    padding: 6px 12px;
    font-size: 1.1rem;
    border-width: 0.5px;
  }
}

/* Dark mode support (if header is active/scrolled) */
.header.active ~ main .location-chip,
.hero-video-bg ~ .container .location-chip {
  background: rgba(0, 0, 0, 0.2);
  color: var(--white);
  border-color: rgba(255, 255, 255, 0.2);
}

.header.active ~ main .location-chip:hover {
  background: rgba(255, 29, 85, 0.3);
  border-color: var(--radical-red);
}

/* Optional: Style for when form is processing */
.btn-primary:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* Optional: Success state styling */
.download-success {
  background: #4CAF50 !important;
  color: white !important;
}

/* Optional: Visual indicator that form is required */
.form-required-notice {
  font-size: 0.85rem;
  color: #666;
  margin-top: 10px;
  font-style: italic;
}

/* Email field styling */
.enquire-field small.field-hint {
  display: block;
  font-size: 0.75rem;
  color: #888;
  margin-top: 4px;
}

.enquire-field input[type="email"]:invalid:not(:placeholder-shown) {
  border-color: #ff4444;
}

.enquire-field input[type="email"]:valid:not(:placeholder-shown) {
  border-color: #4CAF50;
}

/* Download tracking notification */
.download-notification {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background: #4CAF50;
  color: white;
  padding: 12px 20px;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  z-index: 9999;
  transform: translateY(100px);
  opacity: 0;
  transition: all 0.3s ease;
}

.download-notification.show {
  transform: translateY(0);
  opacity: 1;
}

.download-notification::before {
  content: '✓';
  margin-right: 8px;
  font-weight: bold;
}

/* Property interest list in modal (optional - shows what they're downloading) */
.property-interest-list {
  margin: 10px 0;
  padding: 10px;
  background: #f5f5f5;
  border-radius: 6px;
  font-size: 0.85rem;
}

.property-interest-list h5 {
  margin: 0 0 8px 0;
  color: #333;
}

.property-interest-list ul {
  margin: 0;
  padding-left: 16px;
}

.property-interest-list li {
  margin: 4px 0;
  color: #666;
}

/* =========================================
   SUCCESS MODAL - LIGHT MODE
   ========================================= */

.success-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  z-index: 10000;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.success-modal-overlay.active {
  opacity: 1;
  visibility: visible;
}

.success-modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.9);
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15), 
              0 0 0 1px rgba(0, 0, 0, 0.05);
  z-index: 10001;
  width: 90%;
  max-width: 420px;
  padding: 40px 35px;
  text-align: center;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.success-modal.active {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, -50%) scale(1);
  align-items: center;
  justify-content: center;
  justify-items: center;
}

.success-modal-close {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 32px;
  height: 32px;
  border: none;
  background: #f5f5f5;
  border-radius: 50%;
  font-size: 18px;
  color: #666;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.success-modal-close:hover {
  background: #e0e0e0;
  color: #333;
  transform: rotate(90deg);
}

/* Animated Checkmark */
.success-icon {
  margin-bottom: 24px;
}

.checkmark {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  display: block;
  stroke-width: 3;
  stroke: #4CAF50;
  stroke-miterlimit: 10;
  margin: 0 auto;
  box-shadow: 0 4px 20px rgba(76, 175, 80, 0.2);
  animation: checkmark-scale 0.5s ease-in-out;
}

.checkmark__circle {
  stroke-dasharray: 166;
  stroke-dashoffset: 166;
  stroke-width: 3;
  stroke-miterlimit: 10;
  stroke: #4CAF50;
  fill: none;
  animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}

.checkmark__check {
  transform-origin: 50% 50%;
  stroke-dasharray: 48;
  stroke-dashoffset: 48;
  animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.6s forwards;
}

@keyframes stroke {
  100% {
    stroke-dashoffset: 0;
  }
}

@keyframes checkmark-scale {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
}

.success-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0 0 12px 0;
  letter-spacing: -0.5px;
}

.success-message {
  font-size: 1rem;
  color: #666;
  line-height: 1.6;
  margin: 0 0 28px 0;
}

.success-btn {
  background: linear-gradient(135deg, #4CAF50 0%, #45a049 100%);
  color: white;
  border: none;
  padding: 14px 32px;
  font-size: 1rem;
  font-weight: 600;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(76, 175, 80, 0.3);
}

/* Alternative: Full width with max limit */
.success-btn {
  display: block;
  margin: 28px auto 0;     /* Top margin matches previous margin-bottom of message */
  width: 100%;
  max-width: 280px;        /* Limits how wide it gets */
}

.success-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(76, 175, 80, 0.4);
}

.success-btn:active {
  transform: translateY(0);
}

/* Animation for modal content */
.success-modal.active .success-icon {
  animation: slide-up 0.5s ease 0.1s both;
}

.success-modal.active .success-title {
  animation: slide-up 0.5s ease 0.2s both;
}

.success-modal.active .success-message {
  animation: slide-up 0.5s ease 0.3s both;
}

.success-modal.active .success-btn {
  animation: slide-up 0.5s ease 0.4s both;
}

@keyframes slide-up {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Mobile responsiveness */
@media (max-width: 480px) {
  .success-modal {
    padding: 30px 25px;
    width: 92%;
  }
  
  .success-title {
    font-size: 1.5rem;
  }
  
  .success-message {
    font-size: 0.95rem;
  }
  
  .checkmark {
    width: 60px;
    height: 60px;
  }
}

