/* ============ PALÁCIO VERDEMAR — design system ============ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Jost:wght@300;400;500&display=swap');

:root{
  --verde-profundo: #0E2A21;
  --verde-royal:    #163D2E;
  --verde-medio:    #21503C;
  --jade:           #3C7A5C;
  --dourado:        #C9A24B;
  --dourado-claro:  #E1C583;
  --marfim:         #F6F1E4;
  --marfim-escuro:  #ECE2C8;
  --texto-escuro:   #14201A;
  --linha:          rgba(246,241,228,0.16);
  --sombra:         rgba(6,14,10,0.4);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--marfim);
  color:var(--texto-escuro);
  font-family:'Jost', sans-serif;
  font-weight:300;
  overflow-x:hidden;
  line-height:1.6;
}
h1,h2,h3,.serif{font-family:'Cormorant Garamond', serif;font-weight:500;}
a{color:inherit;text-decoration:none;}
img{display:block;width:100%;height:100%;object-fit:cover;}
ul{list-style:none;}
.wrap{max-width:1240px;margin:0 auto;padding:0 6vw;}

.eyebrow{
  font-family:'Jost',sans-serif;text-transform:uppercase;
  letter-spacing:0.3em;font-size:0.7rem;color:var(--dourado);
}

/* crest motif — divider signature */
.crest{display:flex;align-items:center;justify-content:center;gap:16px;margin:0 auto;width:fit-content;}
.crest svg{width:120px;height:34px;}
.crest path,.crest circle,.crest line{stroke-dasharray:260;stroke-dashoffset:260;animation:draw 1.8s ease forwards;}
@keyframes draw{to{stroke-dashoffset:0;}}

.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s ease, transform .9s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

/* ============ HEADER / NAV ============ */
header.site-header{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:26px 6vw;transition:background .4s ease, padding .4s ease, box-shadow .4s ease;
}
header.site-header.scrolled{
  background:rgba(14,42,33,0.94);backdrop-filter:blur(8px);
  padding:14px 6vw;box-shadow:0 10px 30px var(--sombra);
}
.logo{font-family:'Cormorant Garamond',serif;font-size:1.3rem;color:var(--marfim);letter-spacing:0.03em;}
.logo em{font-style:italic;color:var(--dourado-claro);}
nav.main-nav ul{display:flex;gap:34px;align-items:center;}
nav.main-nav a{
  color:var(--marfim);font-size:0.76rem;text-transform:uppercase;letter-spacing:0.13em;
  position:relative;padding-bottom:4px;
}
nav.main-nav a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--dourado-claro);transition:width .3s ease;}
nav.main-nav a:hover::after,nav.main-nav a.active::after{width:100%;}
nav.main-nav a.active{color:var(--dourado-claro);}
.btn-reservar{border:1px solid var(--dourado-claro);padding:9px 20px;border-radius:2px;}
.menu-toggle{display:none;background:none;border:none;color:var(--marfim);font-size:1.6rem;cursor:pointer;z-index:210;}

@media(max-width:900px){
  nav.main-nav ul{
    position:fixed;top:0;right:-100%;height:100vh;width:82%;max-width:340px;
    background:var(--verde-profundo);flex-direction:column;justify-content:center;align-items:flex-start;
    padding:0 44px;gap:28px;transition:right .45s ease;
  }
  nav.main-nav ul.open{right:0;}
  .menu-toggle{display:block;}
}

/* ============ HERO (subpáginas) ============ */
.page-hero{
  position:relative;height:56vh;min-height:400px;display:flex;align-items:flex-end;
  overflow:hidden;
}
.page-hero .hero-img{position:absolute;inset:0;}
.page-hero .hero-img img{transform:scale(1.06);}
.page-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(10,20,15,0.35), rgba(10,20,15,0.85));}
.page-hero .hero-text{position:relative;z-index:2;padding:0 6vw 60px;color:var(--marfim);}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);}

/* ============ HOME HERO (ecrã inteiro) ============ */
.home-hero{position:relative;height:100vh;min-height:640px;display:flex;align-items:flex-end;overflow:hidden;}
.home-hero .hero-img{position:absolute;inset:0;z-index:0;}
.home-hero .hero-img img{transform:scale(1.12);animation:kenburns 24s ease-in-out infinite alternate;}
@keyframes kenburns{0%{transform:scale(1.12) translate(0,0);}100%{transform:scale(1.02) translate(-1.5%,-1.5%);}}
.home-hero::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg, rgba(9,20,15,0.3) 0%, rgba(9,20,15,0.35) 45%, rgba(9,20,15,0.94) 100%);}
.home-hero .hero-content{position:relative;z-index:2;padding:0 6vw 8vw;max-width:920px;color:var(--marfim);}
.home-hero .eyebrow{color:var(--dourado-claro);display:block;margin-bottom:22px;}
.home-hero h1{font-size:clamp(2.6rem,6.2vw,5rem);line-height:1.04;}
.home-hero h1 em{font-style:italic;color:var(--dourado-claro);}
.home-hero p{margin-top:24px;max-width:500px;font-size:1.02rem;color:rgba(246,241,228,0.85);}
.home-hero .hero-actions{display:flex;gap:18px;margin-top:36px;flex-wrap:wrap;}
.scroll-cue{position:absolute;bottom:34px;right:6vw;z-index:2;color:var(--marfim);font-size:0.68rem;text-transform:uppercase;letter-spacing:0.2em;display:flex;flex-direction:column;align-items:center;gap:10px;}
.scroll-cue .line{width:1px;height:40px;background:rgba(246,241,228,0.4);position:relative;overflow:hidden;}
.scroll-cue .line::after{content:'';position:absolute;top:-40px;left:0;width:100%;height:100%;background:var(--dourado-claro);animation:scrollline 2s ease-in-out infinite;}
@keyframes scrollline{to{top:40px;}}

/* ============ BOTÕES ============ */
.btn{display:inline-block;padding:15px 30px;font-size:0.76rem;text-transform:uppercase;letter-spacing:0.16em;border-radius:2px;transition:all .3s ease;cursor:pointer;border:none;font-family:'Jost',sans-serif;}
.btn-dourado{background:var(--dourado);color:var(--verde-profundo);}
.btn-dourado:hover{background:var(--dourado-claro);}
.btn-outline-claro{border:1px solid rgba(246,241,228,0.5);color:var(--marfim);background:transparent;}
.btn-outline-claro:hover{border-color:var(--marfim);background:rgba(246,241,228,0.08);}
.btn-outline-escuro{border:1px solid rgba(20,32,26,0.35);color:var(--texto-escuro);background:transparent;}
.btn-outline-escuro:hover{border-color:var(--verde-profundo);background:rgba(20,32,26,0.05);}

/* ============ SECÇÕES ============ */
section{padding:120px 6vw;position:relative;}
.section-head{max-width:660px;margin-bottom:64px;}
.section-head .eyebrow{display:block;margin-bottom:16px;}
.section-head h2{font-size:clamp(2rem,4vw,3rem);}
.bg-escuro{background:var(--verde-profundo);color:var(--marfim);}
.bg-escuro .section-head{color:var(--marfim);}
.bg-escuro .section-head p{color:rgba(246,241,228,0.72);}
.bg-marfim-escuro{background:var(--marfim-escuro);}

/* ============ CARTÕES GENÉRICOS ============ */
.card-grid{display:grid;gap:28px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:900px){.grid-3,.grid-2{grid-template-columns:1fr;}}

.room-card{background:var(--marfim);border:1px solid rgba(20,32,26,0.08);border-radius:3px;overflow:hidden;transition:transform .4s ease, box-shadow .4s ease;}
.room-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(20,32,26,0.14);}
.room-card .thumb{height:230px;overflow:hidden;}
.room-card .thumb img{transition:transform .8s ease;}
.room-card:hover .thumb img{transform:scale(1.08);}
.room-card .info{padding:28px;}
.room-card h3{font-size:1.4rem;margin-bottom:6px;}
.room-card .desde{font-size:0.78rem;color:var(--jade);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:14px;}
.room-card p{font-size:0.9rem;color:rgba(20,32,26,0.68);margin-bottom:18px;}
.room-card .amen{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:20px;font-size:0.74rem;color:rgba(20,32,26,0.55);}
.room-card .amen span{display:flex;align-items:center;gap:6px;}
.room-card .amen svg{width:14px;height:14px;stroke:var(--jade);fill:none;stroke-width:1.6;}

/* venue cards (gastronomia) */
.venue-card{position:relative;overflow:hidden;border-radius:3px;min-height:420px;display:flex;align-items:flex-end;color:var(--marfim);}
.venue-card img{position:absolute;inset:0;transition:transform .8s ease;}
.venue-card:hover img{transform:scale(1.08);}
.venue-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(10,20,15,0.05) 30%, rgba(10,20,15,0.92) 100%);}
.venue-card .content{position:relative;z-index:2;padding:38px;}
.venue-card .eyebrow{color:var(--dourado-claro);}
.venue-card h3{font-size:1.7rem;margin:10px 0 12px;}
.venue-card p{font-size:0.92rem;color:rgba(246,241,228,0.78);max-width:340px;margin-bottom:18px;}

/* reviews */
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
@media(max-width:900px){.reviews-grid{grid-template-columns:1fr;}}
.review-card{background:var(--marfim);border:1px solid rgba(20,32,26,0.1);border-radius:2px;padding:36px 30px;display:flex;flex-direction:column;gap:18px;}
.stars{color:var(--dourado);letter-spacing:3px;}
.review-card .quote{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.1rem;line-height:1.6;flex-grow:1;}
.review-meta{border-top:1px solid rgba(20,32,26,0.1);padding-top:16px;font-size:0.82rem;}
.review-meta .nome{font-weight:500;}
.review-meta .origem{color:rgba(20,32,26,0.55);font-size:0.76rem;}

/* services icons */
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--linha);}
@media(max-width:860px){.services-grid{grid-template-columns:repeat(2,1fr);}}
.service{background:var(--verde-profundo);padding:50px 28px;text-align:center;}
.service svg{width:32px;height:32px;stroke:var(--dourado-claro);fill:none;stroke-width:1.3;margin-bottom:18px;}
.service h4{font-size:1.05rem;margin-bottom:8px;}
.service p{font-size:0.8rem;color:rgba(246,241,228,0.6);}

/* offers */
.offer-card{background:var(--marfim);border-radius:3px;overflow:hidden;border:1px solid rgba(20,32,26,0.08);}
.offer-card .thumb{height:200px;position:relative;}
.offer-card .tag{position:absolute;top:16px;left:16px;background:var(--dourado);color:var(--verde-profundo);font-size:0.7rem;text-transform:uppercase;letter-spacing:0.1em;padding:6px 12px;border-radius:2px;}
.offer-card .info{padding:26px;}
.offer-card h3{font-size:1.25rem;margin-bottom:8px;}
.offer-card p{font-size:0.86rem;color:rgba(20,32,26,0.65);margin-bottom:16px;}
.offer-card .preco{font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:var(--jade);margin-bottom:14px;}

/* forms */
.field{display:flex;flex-direction:column;gap:8px;}
.field label{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.12em;color:rgba(20,32,26,0.6);}
.field input,.field select,.field textarea{
  border:none;border-bottom:1px solid rgba(20,32,26,0.25);background:transparent;padding:10px 2px;
  font-family:'Jost',sans-serif;font-size:0.95rem;color:var(--texto-escuro);outline:none;transition:border-color .3s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--dourado);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;}
@media(max-width:560px){.form-row{grid-template-columns:1fr;}}
.form-note{margin-top:16px;font-size:0.8rem;display:flex;align-items:center;gap:8px;}

/* light fields (on dark background) */
.field-claro label{color:rgba(246,241,228,0.65);}
.field-claro input,.field-claro select,.field-claro textarea{color:var(--marfim);border-bottom-color:rgba(246,241,228,0.3);}
.field-claro input::placeholder,.field-claro textarea::placeholder{color:rgba(246,241,228,0.4);}

/* ============ BOOKING BAR (fixa, todas as páginas) ============ */
.booking-bar{
  background:var(--verde-royal);color:var(--marfim);
  position:sticky;top:0;z-index:150;
  display:flex;align-items:center;justify-content:center;gap:26px;flex-wrap:wrap;
  padding:14px 6vw;border-bottom:1px solid var(--linha);
  font-size:0.82rem;
}
.booking-bar strong{color:var(--dourado-claro);font-weight:500;}
.booking-bar .btn{padding:10px 22px;}

/* ============ BOOKING MODAL ============ */
.modal-overlay{
  position:fixed;inset:0;background:rgba(9,18,14,0.7);z-index:500;
  display:none;align-items:center;justify-content:center;padding:20px;
  opacity:0;transition:opacity .3s ease;
}
.modal-overlay.open{display:flex;opacity:1;}
.modal-box{
  background:var(--marfim);border-radius:4px;max-width:520px;width:100%;
  padding:44px;position:relative;transform:translateY(20px);transition:transform .35s ease;
  max-height:88vh;overflow-y:auto;
}
.modal-overlay.open .modal-box{transform:translateY(0);}
.modal-close{position:absolute;top:16px;right:20px;background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--texto-escuro);}
.modal-box h3{font-size:1.6rem;margin-bottom:6px;}
.modal-box > p{font-size:0.85rem;color:rgba(20,32,26,0.6);margin-bottom:28px;}
.confirm-msg{display:none;align-items:center;gap:10px;background:rgba(60,122,92,0.12);color:var(--jade);padding:14px 16px;border-radius:2px;font-size:0.85rem;margin-top:16px;}
.confirm-msg.show{display:flex;}

/* ============ FOOTER ============ */
footer.site-footer{background:#081812;color:rgba(246,241,228,0.68);padding:80px 6vw 30px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:50px;padding-bottom:56px;border-bottom:1px solid rgba(246,241,228,0.1);}
@media(max-width:820px){.footer-grid{grid-template-columns:1fr 1fr;}}
.footer-grid h5{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.16em;color:var(--dourado-claro);margin-bottom:20px;}
.footer-grid p,.footer-grid a{display:block;font-size:0.88rem;line-height:2.1;color:rgba(246,241,228,0.65);}
.footer-grid a:hover{color:var(--marfim);}
.footer-logo{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--marfim);margin-bottom:14px;}
.footer-logo em{font-style:italic;color:var(--dourado-claro);}
.footer-desc{max-width:290px;font-size:0.88rem;color:rgba(246,241,228,0.5);}
.footer-bottom{padding-top:24px;display:flex;justify-content:space-between;font-size:0.74rem;color:rgba(246,241,228,0.4);flex-wrap:wrap;gap:10px;}

@media(max-width:600px){
  section{padding:86px 6vw;}
  .modal-box{padding:32px 24px;}
}
