@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700;800&family=Cormorant+Garamond:wght@500;600;700&family=Dancing+Script:wght@600;700&family=Great+Vibes&family=Lora:wght@400;500;600;700&family=Merriweather:wght@400;700&family=Montserrat:wght@400;600;700;800&family=Oswald:wght@400;600;700&family=Playfair+Display:wght@500;600;700;800&family=Raleway:wght@400;600;700;800&family=Roboto+Slab:wght@400;600;700&display=swap');

*{
margin:0;
padding:0;
box-sizing:border-box;
}

body{
font-family:Arial;
min-height:100vh;
}


/* NAVBAR */

nav{

padding:20px;

display:flex;
flex-direction:column;
gap:15px;

}

.menu{

display:flex;
flex-wrap:wrap;
gap:20px;
font-size:14px;

}


/* HERO */

.hero{

padding:60px 20px;
text-align:center;

}

.hero h1{

font-size:34px;

}

.hero p{

margin:20px 0;

}

button{

padding:12px 24px;
border:none;

}


/* ABOUT */

.about{

padding:40px 20px;

}


/* GALLERY */

.gallery{

padding:40px 20px;

}

.images{

display:grid;

grid-template-columns:
1fr;

gap:15px;

}

.images img{

width:100%;

}


/* CONTACT */

.contact{

padding:40px 20px;

}



/* TABLET */

@media(min-width:768px){

nav{

flex-direction:row;

justify-content:
space-between;

}


.images{

grid-template-columns:
1fr 1fr;

}


.hero h1{

font-size:50px;

}

}


/* DESKTOP */

@media(min-width:1024px){

.hero{

padding:120px;

}

.hero h1{

font-size:70px;

}


.images{

grid-template-columns:
1fr 1fr 1fr;

}

}

/* ADMIN LOGIN */

.login-container{

width:90%;
max-width:400px;

margin:40px auto;

display:flex;
flex-direction:column;

gap:20px;

padding:22px;

border-radius:12px;

box-shadow:
0 0 10px rgba(0,0,0,.1);

}

.login-container h1{
font-size:26px;
line-height:1.15;
}


.login-container input{

width:100%;
padding:13px;

font-size:15px;

}


.login-container button{

width:100%;
padding:13px;

cursor:pointer;

}

@media(min-width:768px){

.login-container{
margin:80px auto;
padding:30px;
}

.login-container h1{
font-size:32px;
}

.login-container input,
.login-container button{
font-size:16px;
padding:14px;
}

}

/* DASHBOARD */

.dashboard{

width:90%;
max-width:500px;

margin:40px auto;

display:flex;
flex-direction:column;

gap:20px;

}


.dashboard button{

padding:18px;

font-size:16px;

border:none;

border-radius:10px;

cursor:pointer;

}

/* SHARED AESTHETIC UI */

:root{
--page-bg:#ffffff;
--section-bg:#f7f7f4;
--panel-bg:#ffffff;
--panel-strong:#f1f1ed;
--text-main:#171717;
--text-soft:#4d4a45;
--text-muted:#77716a;
--accent:#ffd36e;
--accent-2:#ff7a59;
--accent-3:#d94f8a;
--accent-4:#55d6c2;
--line:rgba(23,23,23,.12);
--shadow:rgba(24,24,24,.12);
--site-font:'Montserrat','Poppins','Segoe UI',Arial,sans-serif;
--display-font:'Cormorant Garamond','Playfair Display',Georgia,serif;
}

body{
font-family:var(--site-font);
background:var(--page-bg);
color:var(--text-main);
}

body.site-font-applied,
body.site-font-applied p,
body.site-font-applied a,
body.site-font-applied button,
body.site-font-applied input,
body.site-font-applied textarea,
body.site-font-applied select,
body.site-font-applied label,
body.site-font-applied span{
font-family:var(--site-font) !important;
}

body.site-font-applied h1,
body.site-font-applied h2,
body.site-font-applied h3{
font-family:var(--display-font) !important;
}

body.site-font-applied .public-menu a{
font-family:"Sofia Pro","Segoe UI",Arial,sans-serif !important;
}

body.site-font-applied .public-brand{
font-family:"Fraunces","Cormorant Garamond",Georgia,serif !important;
}

body::before{
content:"";
position:fixed;
inset:0;
pointer-events:none;
background:linear-gradient(180deg,rgba(255,211,110,.08),transparent 38%);
z-index:-1;
}

.login-container,
.booking-container,
.container,
.box,
.form-box,
.card,
.job-card,
.category,
.featured-save-bar,
.review-card{
background:var(--panel-bg);
border:1px solid var(--line);
box-shadow:0 16px 42px rgba(0,0,0,.08);
backdrop-filter:none;
}

.login-container{
margin-top:clamp(60px,12vh,120px);
border-radius:24px;
position:relative;
overflow:hidden;
}

.login-container::before,
.booking-container::before,
.container::before{
content:"";
position:absolute;
inset:0;
background:linear-gradient(135deg,rgba(255,211,110,.12),transparent 44%);
pointer-events:none;
}

.login-container > *,
.booking-container > *,
.container > *{
position:relative;
z-index:1;
}

.login-container form{
display:flex;
flex-direction:column;
gap:14px;
}

.login-container input,
.login-container button{
margin:0;
border-radius:14px;
}

.forgot-toggle{
background:rgba(255,255,255,.08);
color:var(--accent);
border:1px solid var(--line);
box-shadow:none;
}

.forgot-box{
display:none;
margin-top:18px;
padding-top:18px;
border-top:1px solid var(--line);
}

.forgot-box h2{
font-size:22px;
margin-bottom:14px;
color:var(--accent);
}

.forgot-box > div{
display:flex;
flex-direction:column;
gap:12px;
margin-bottom:12px;
}

h1,h2,h3,
.login-container h1,
.booking-header h2,
.top h1{
color:var(--accent);
}

.login-container h1,
.booking-header h2,
h1{
background:none;
-webkit-text-fill-color:currentColor;
color:var(--text-main);
}

h1,h2,
.booking-header h2{
font-family:var(--display-font);
letter-spacing:.2px;
}

p,
.booking-header p,
.job-card p,
.card p{
color:var(--text-soft);
}

input,
textarea,
select{
background:#ffffff;
color:var(--text-main);
border:1px solid rgba(23,23,23,.14);
box-shadow:inset 0 1px 0 rgba(0,0,0,.02);
}

input:focus,
textarea:focus,
select:focus{
border-color:var(--accent);
box-shadow:0 0 0 3px rgba(255,211,110,.14);
}

input::placeholder,
textarea::placeholder{
color:#9a958e;
}

button,
.add-btn,
.edit,
.featured-save-bar button,
.cta a{
background:linear-gradient(135deg,var(--accent-3),var(--accent-2),var(--accent));
color:#160d0f;
font-weight:800;
border:0;
box-shadow:0 12px 28px var(--shadow);
transition:transform .25s ease,box-shadow .25s ease,filter .25s ease;
}

button:hover,
.add-btn:hover,
.edit:hover,
.featured-save-bar button:hover,
.cta a:hover{
transform:translateY(-2px);
filter:saturate(1.08);
box-shadow:0 16px 34px rgba(255,122,89,.3);
}

.logout,
.back,
.menu-btn{
background:#ffffff;
color:var(--text-main);
border:1px solid var(--line);
box-shadow:none;
}

.delete{
background:linear-gradient(135deg,#ff4365,#d94f8a);
color:white;
}

.media-box,
.preview-wrapper,
.hero-preview-wrapper,
.logo-preview-box,
.category-card{
background:#f5f5f2;
border:1px solid var(--line);
}

.category-card.active,
.featured-mode .card.selected{
outline:3px solid var(--accent);
box-shadow:0 14px 32px rgba(255,211,110,.22);
}

.category-card span,
.category-card.active span{
color:var(--accent);
}

.topbar,
.top{
background:transparent;
}

.nav-menu,
.main-menu{
background:#ffffff;
border:1px solid var(--line);
box-shadow:0 18px 45px rgba(0,0,0,.12);
}

.nav-menu a,
.nav-menu button{
background:transparent;
color:var(--text-main);
border-bottom:1px solid rgba(23,23,23,.08);
}

.nav-menu a:hover,
.nav-menu button:hover{
background:rgba(255,211,110,.1);
color:var(--accent);
}

table{
background:#ffffff;
border:1px solid var(--line);
border-radius:16px;
overflow:hidden;
}

th{
background:rgba(255,211,110,.12);
color:var(--accent);
}

td{
border-color:rgba(23,23,23,.08);
color:var(--text-soft);
}

/* PUBLIC PORTAL HEADER */

body.public-portal{
padding-top:0 !important;
}

.public-header{
position:fixed;
top:0;
left:0;
right:0;
z-index:1000;
min-height:92px;
padding:30px clamp(22px,4vw,58px);
display:grid;
grid-template-columns:auto 1fr auto;
align-items:center;
justify-content:normal;
column-gap:18px;
background:transparent;
border-bottom:1px solid transparent;
box-shadow:none;
backdrop-filter:none;
-webkit-backdrop-filter:none;
transition:background .28s ease,border-color .28s ease,box-shadow .28s ease;
}

.public-header.scrolled{
background:transparent;
border-bottom:1px solid transparent;
box-shadow:none;
}

.public-logo-area{
position:relative;
left:auto;
top:auto;
transform:none;
grid-column:1;
justify-self:start;
display:flex;
align-items:center;
justify-content:center;
width:48px;
height:48px;
overflow:hidden;
text-decoration:none;
}

.public-logo-frame{
width:42px;
height:42px;
display:block;
border-radius:50%;
overflow:hidden;
border:2px solid var(--accent);
background:white;
box-shadow:0 0 18px var(--shadow);
position:relative;
}

.public-logo-frame img{
position:absolute;
top:50%;
left:50%;
width:100%;
height:auto;
display:block;
object-fit:contain;
transform:translate(-50%,-50%);
max-width:none;
}

.public-brand{
position:relative;
grid-column:2;
justify-self:start;
text-align:left;
z-index:2;
font-family:var(--site-font);
font-size:22px;
font-weight:600;
line-height:1;
letter-spacing:.2px;
background:none;
color:#000000;
-webkit-text-fill-color:currentColor;
text-shadow:none;
text-transform:lowercase;
}

.public-menu-toggle{
position:relative;
right:auto;
top:auto;
transform:none;
grid-column:3;
justify-self:end;
width:auto;
height:auto;
min-height:34px;
border:0;
display:flex;
flex-direction:row;
align-items:center;
justify-content:center;
gap:12px;
background:transparent;
color:#000000;
cursor:pointer;
box-shadow:none;
transition:background .28s ease,box-shadow .28s ease;
}

.public-header.scrolled .public-menu-toggle,
.public-menu-toggle[aria-expanded="true"]{
background:transparent;
box-shadow:none;
}

.public-menu-toggle-label{
font-size:12px;
font-weight:600;
letter-spacing:1.8px;
line-height:1;
text-transform:uppercase;
}

.public-menu-toggle-lines{
display:flex;
flex-direction:column;
gap:5px;
width:22px;
}

.public-menu-toggle-lines span{
display:block;
width:22px;
height:2px;
background:currentColor;
border-radius:10px;
}

.public-menu{
position:absolute;
top:calc(100% + 10px);
right:16px;
width:min(260px,calc(100vw - 32px));
display:none;
flex-direction:column;
padding:0;
background:#ffffff;
border:1px solid var(--line);
border-radius:16px;
box-shadow:0 18px 50px rgba(0,0,0,.14);
overflow:hidden;
}

.public-menu.open{
display:flex;
}

.public-menu a{
display:block;
padding:15px 18px;
color:var(--text-main);
text-decoration:none;
font-family:var(--site-font);
font-size:14px;
font-weight:600;
line-height:normal;
letter-spacing:0;
text-transform:none;
border-bottom:1px solid rgba(23,23,23,.08);
}

.public-menu a:last-child{
border-bottom:0;
}

.public-menu a:hover{
background:rgba(255,211,110,.1);
color:var(--accent);
opacity:1;
}

.floating-whatsapp,
.floating-contact{
position:fixed;
right:18px;
z-index:1001;
width:46px;
height:46px;
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
background:#fff;
color:rgb(67,73,63);
text-decoration:none;
box-shadow:0 10px 26px rgba(0,0,0,.16);
transition:transform .25s ease,box-shadow .25s ease;
}

.floating-whatsapp{
bottom:82px;
background:#fff;
}

.floating-contact{
bottom:26px;
background:#fff;
color:rgb(67,73,63);
}

.floating-whatsapp:hover,
.floating-contact:hover{
transform:translateY(-3px);
}

.floating-whatsapp:hover{
box-shadow:0 14px 30px rgba(0,0,0,.18);
}

.floating-contact:hover{
box-shadow:0 14px 30px rgba(0,0,0,.18);
}

.floating-whatsapp svg,
.floating-contact svg{
width:23px;
height:23px;
fill:currentColor;
}

.public-footer,
footer{
padding:32px 20px;
text-align:center;
background:#f7f7f4;
color:var(--text-muted);
font-size:14px;
border-top:1px solid var(--line);
}

.footer-links{
display:flex;
flex-wrap:wrap;
align-items:center;
justify-content:center;
gap:12px;
margin-bottom:12px;
}

.footer-links a{
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
padding:10px 14px;
border-radius:999px;
background:#ffffff;
color:var(--text-main);
text-decoration:none;
font-weight:700;
font-family:'Poppins',Arial,sans-serif;
border:1px solid var(--line);
}

.footer-links .social-icon{
width:44px;
height:44px;
padding:0;
}

.footer-links a:hover{
background:rgba(255,211,110,.14);
color:var(--accent);
}

.footer-links svg{
width:18px;
height:18px;
fill:currentColor;
}

.public-footer-nav{
display:flex;
flex-wrap:wrap;
align-items:center;
justify-content:center;
gap:18px;
margin:8px auto 16px;
}

.public-footer-nav a{
color:var(--text-main);
text-decoration:none;
font-family:var(--site-font);
font-size:13px;
font-weight:600;
line-height:20px;
}

.public-footer-nav a:hover{
color:var(--accent);
}

body.public-portal #publicHeader{
position:fixed;
z-index:1000;
top:0;
left:0;
width:100%;
padding:30px clamp(22px,4vw,58px);
min-height:92px;
display:grid;
grid-template-columns:auto 1fr auto;
justify-content:normal;
align-items:center;
column-gap:18px;
background:transparent;
backdrop-filter:blur(0);
-webkit-backdrop-filter:blur(0);
border-bottom:1px solid transparent;
transition:background .28s ease,backdrop-filter .28s ease,border-color .28s ease,box-shadow .28s ease;
}

body.public-portal .logo-area{
display:flex;
align-items:center;
justify-content:center;
gap:0;
position:relative;
left:auto;
top:auto;
transform:none;
grid-column:1;
justify-self:start;
width:48px;
height:48px;
text-decoration:none;
}

body.public-portal .logo-frame{
width:42px;
height:42px;
border-radius:50%;
overflow:hidden;
border:2px solid var(--accent);
position:relative;
background:white;
flex-shrink:0;
box-shadow:0 0 18px var(--shadow);
}

body.public-portal #siteLogo{
position:absolute;
top:50%;
left:50%;
width:100%;
height:auto;
max-width:none;
display:block;
object-fit:contain;
transform:translate(-50%,-50%) translate(0px,0px) scale(1);
transform-origin:center;
}

body.public-portal .brand{
position:relative;
left:auto;
top:auto;
transform:none;
grid-column:2;
justify-self:start;
text-align:left;
z-index:2;
width:auto;
display:flex;
align-items:center;
justify-content:flex-start;
min-height:32px;
font-family:var(--site-font);
font-size:22px;
font-weight:600;
letter-spacing:.2px;
color:#000000;
background:none;
-webkit-text-fill-color:currentColor;
text-shadow:none;
text-transform:lowercase;
}

body.site-font-applied.public-portal .brand{
font-family:var(--pg-sans) !important;
}

body.public-portal .menu-toggle{
position:relative;
right:auto;
top:auto;
transform:none;
grid-column:3;
justify-self:end;
z-index:10002;
pointer-events:auto;
width:auto;
height:auto;
min-height:34px;
border:0;
border-radius:0;
display:inline-flex;
flex-direction:row;
justify-content:center;
align-items:center;
gap:12px;
background:transparent;
color:#000000;
cursor:pointer;
box-shadow:none;
transition:background .28s ease,border-color .28s ease,box-shadow .28s ease;
}

body.public-portal .menu-toggle.active,
body.public-portal .menu-toggle[aria-expanded="true"]{
background:transparent;
border-color:transparent;
box-shadow:none;
color:#000000;
}

body.public-portal .menu-toggle-label{
font-size:12px;
font-weight:600;
letter-spacing:1.8px;
text-transform:uppercase;
line-height:1;
}

body.public-portal .menu-toggle-lines{
display:flex;
flex-direction:column;
gap:5px;
width:22px;
}

body.public-portal .menu-toggle-lines span{
display:block;
width:22px;
height:2px;
background:currentColor;
border-radius:10px;
}

body.public-portal .main-menu{
position:absolute;
top:calc(100% + 10px);
right:16px;
width:min(260px,calc(100vw - 32px));
display:none;
flex-direction:column;
padding:0;
background:#ffffff;
border:1px solid var(--line);
border-radius:16px;
box-shadow:0 18px 50px rgba(0,0,0,.14);
overflow:hidden;
}

body.public-portal .main-menu.open{
display:flex;
}

body.public-portal .main-menu a{
display:block;
padding:15px 18px;
color:var(--text-main);
text-decoration:none;
font-family:var(--site-font);
font-size:14px;
font-weight:600;
line-height:normal;
letter-spacing:0;
text-transform:none;
border-bottom:1px solid rgba(23,23,23,.08);
}

body.public-portal .main-menu a:last-child{
border-bottom:0;
}

body.public-portal .main-menu a:hover{
background:rgba(255,211,110,.1);
color:var(--accent);
opacity:1;
}

@media(max-width:480px){
body.public-portal{
padding-top:76px !important;
}

body.public-portal #publicHeader{
min-height:76px;
height:auto;
padding:22px 18px;
grid-template-columns:auto 1fr auto;
column-gap:14px;
}

body.public-portal .logo-area{
left:auto;
}

body.public-portal .logo-frame{
width:36px;
height:36px;
border-width:1px;
}

body.public-portal .brand{
font-size:19px;
letter-spacing:.2px;
line-height:1;
min-height:32px;
transform:none;
}

body.public-portal .menu-toggle{
right:auto;
width:auto;
height:auto;
border-radius:0;
}

body.public-portal .menu-toggle-lines{
width:20px;
}

body.public-portal .menu-toggle-lines span{
width:20px;
}

.floating-whatsapp,
.floating-contact{
right:18px;
width:46px;
height:46px;
}

.floating-whatsapp{
bottom:82px;
}

.floating-contact{
bottom:26px;
}
}

