@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400;1,9..144,500&family=Work+Sans:wght@300;400;500;600&display=swap');

:root{
  --ink:#1F1B17;
  --paper:#F1EBDE;
  --paper-2:#E9E1D0;
  --wine:#6E3226;
  --sage:#4B5240;
  --sand:#A0907A;
  --line: rgba(31,27,23,0.14);
  --font-display: 'Fraunces', serif;
  --font-body: 'Work Sans', sans-serif;
  --max: 1360px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-weight:400;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:500;
  line-height:1.08;
  margin:0;
  letter-spacing:-0.01em;
}

p{max-width:62ch;}

.wrap{max-width:var(--max);margin:0 auto;padding:0 40px;}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(241,235,222,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.site-header .wrap{
  display:flex;align-items:center;justify-content:space-between;
  height:84px;
}
.logo{
  font-family:var(--font-display);
  font-size:22px;
  letter-spacing:0.01em;
}
.logo span{color:var(--wine);}
nav.main-nav{display:flex;align-items:center;gap:36px;}
nav.main-nav a{font-size:15px;position:relative;padding:4px 0;}
nav.main-nav a.current::after,
nav.main-nav a:hover::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--wine);
}
.btn{
  display:inline-block;
  font-family:var(--font-body);
  font-size:14px;
  padding:13px 26px;
  border:1px solid var(--ink);
  border-radius:2px;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.btn.dark{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.btn.dark:hover{background:var(--wine);border-color:var(--wine);}
.btn.ghost{background:transparent;color:var(--ink);}
.btn.ghost:hover{background:var(--ink);color:var(--paper);}
.hamburger{display:none;background:none;border:0;cursor:pointer;padding:8px;}
.hamburger span{display:block;width:24px;height:1px;background:var(--ink);margin:6px 0;transition:transform .25s ease, opacity .25s ease;}

/* ---------- Hero ---------- */
.hero{position:relative;height:88vh;min-height:560px;overflow:hidden;}
.hero img{position:absolute;top:-30%;left:0;width:100%;height:160%;object-fit:cover;object-position:center 20%;will-change:transform;}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(31,27,23,0.05) 0%, rgba(31,27,23,0.55) 100%);
}
.hero-content{
  position:absolute;left:0;right:0;bottom:0;
  padding:0 40px 64px;
  max-width:var(--max);margin:0 auto;
  color:var(--paper);
}
.hero-content h1{
  font-size:clamp(34px,5vw,64px);
  max-width:14ch;
  opacity:0;transform:translateY(14px);
  animation:rise .9s .15s ease forwards;
}
.hero-content p{
  font-size:18px;max-width:46ch;margin:20px 0 30px;
  opacity:0;transform:translateY(14px);
  animation:rise .9s .3s ease forwards;
}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;opacity:0;transform:translateY(14px);animation:rise .9s .45s ease forwards;}
.hero-actions .btn.ghost{border-color:var(--paper);color:var(--paper);}
.hero-actions .btn.ghost:hover{background:var(--paper);color:var(--ink);}
@keyframes rise{to{opacity:1;transform:translateY(0);}}
@media (prefers-reduced-motion: reduce){
  .hero-content h1,.hero-content p,.hero-actions{animation:none;opacity:1;transform:none;}
}

/* ---------- Sections ---------- */
section{padding:120px 0;}
section.tight{padding:80px 0;}
.section-head{max-width:640px;margin-bottom:56px;}
.section-head .label{
  font-family:var(--font-display);font-style:italic;color:var(--wine);
  font-size:17px;margin-bottom:14px;display:block;
}
.section-head h2{font-size:clamp(28px,3.4vw,42px);}
.section-head p{margin-top:18px;color:#4a453e;}

.divider{border:0;border-top:1px solid var(--line);margin:0;}

/* ---------- Intro ---------- */
.intro{display:grid;grid-template-columns:0.9fr 1.1fr;gap:80px;align-items:start;}
.intro .label{font-family:var(--font-display);font-style:italic;color:var(--wine);font-size:17px;}
.intro h2{font-size:clamp(28px,3.6vw,44px);margin-top:14px;}
.intro .body p{color:#4a453e;}

/* ---------- Experience grid ---------- */
.exp-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:2px;
  background:var(--line);
}
.exp-card{
  background:var(--paper);position:relative;aspect-ratio:3/4;overflow:hidden;
}
.exp-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.exp-card:hover img{transform:scale(1.04);}
.exp-card .tag{
  position:absolute;left:18px;bottom:18px;color:#fff;
  font-family:var(--font-display);font-size:19px;
}
.exp-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(31,27,23,0.6) 100%);}
.exp-card .tag{z-index:1;}

/* ---------- Editorial portfolio grid (varied spans) ---------- */
.port-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:28px;
}
.port-grid a{grid-column:span 3;position:relative;overflow:hidden;}
.port-grid a.wide{grid-column:span 4;}
.port-grid a.narrow{grid-column:span 2;}
.port-grid figure{margin:0;aspect-ratio:4/5;overflow:hidden;background:var(--paper-2);}
.port-grid a.wide figure{aspect-ratio:16/10;}
.port-grid img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.port-grid a:hover img{transform:scale(1.045);}
.port-cap{margin-top:14px;display:flex;justify-content:space-between;font-size:14px;color:#4a453e;}
.port-cap .n{font-family:var(--font-display);font-style:italic;color:var(--wine);}

/* ---------- Casa apogeu teaser ---------- */
.casa-teaser{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.casa-teaser img{aspect-ratio:5/6;object-fit:cover;}
.casa-teaser .label{font-family:var(--font-display);font-style:italic;color:var(--wine);}
.casa-teaser h2{margin-top:12px;font-size:clamp(26px,3.2vw,38px);}
.casa-teaser p{color:#4a453e;margin:18px 0 28px;}

/* ---------- Colecao teaser ---------- */
.colecao{background:var(--ink);color:var(--paper);}
.colecao .section-head .label{color:#D8B79A;}
.colecao .section-head p{color:#cfc7ba;}
.col-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.col-item{border:1px solid rgba(241,235,222,0.18);padding:28px 24px;transition:border-color .25s ease;}
.col-item:hover{border-color:rgba(241,235,222,0.5);}
.col-item img{aspect-ratio:4/5;object-fit:cover;margin-bottom:18px;}
.col-item h4{font-size:19px;font-weight:500;}
.col-item .price{margin-top:8px;color:#cfc7ba;font-size:14px;}

/* ---------- Blog teaser ---------- */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;}
.post-card img{aspect-ratio:4/3;object-fit:cover;margin-bottom:20px;}
.post-card .cat{font-size:13px;color:var(--wine);font-family:var(--font-display);font-style:italic;}
.post-card h3{margin-top:10px;font-size:22px;}
.post-card p{color:#4a453e;font-size:15px;margin-top:10px;}
.post-card .date{color:var(--sand);font-size:13px;margin-top:12px;display:block;}

/* ---------- CTA final ---------- */
.cta-final{
  background:var(--sage);color:var(--paper);text-align:center;padding:140px 0;
}
.cta-final h2{font-size:clamp(30px,4.4vw,54px);max-width:16ch;margin:0 auto;}
.cta-final p{max-width:44ch;margin:22px auto 34px;color:#e4e6dd;}
.cta-final .btn.ghost{border-color:var(--paper);color:var(--paper);}
.cta-final .btn.ghost:hover{background:var(--paper);color:var(--ink);}

/* ---------- Footer ---------- */
footer.site-footer{padding:70px 0 40px;border-top:1px solid var(--line);}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;}
.foot-grid .logo{margin-bottom:16px;}
.foot-grid p{color:#4a453e;font-size:14px;}
.foot-grid h5{font-family:var(--font-body);font-weight:500;font-size:14px;margin-bottom:14px;}
.foot-grid a{display:block;font-size:14px;color:#4a453e;margin-bottom:10px;}
.foot-grid a:hover{color:var(--wine);}
.foot-bottom{margin-top:60px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:13px;color:var(--sand);}

/* ---------- Page hero (inner pages) ---------- */
.page-hero{position:relative;height:62vh;min-height:420px;overflow:hidden;}
.page-hero img{position:absolute;top:-30%;left:0;width:100%;height:160%;object-fit:cover;object-position:center 20%;will-change:transform;}
.page-hero-content{
  position:absolute;left:0;right:0;bottom:0;padding:0 40px 56px;
  max-width:var(--max);margin:0 auto;color:var(--paper);
}
.page-hero-content .label{font-family:var(--font-display);font-style:italic;color:#E6C9AE;display:block;margin-bottom:10px;}
.page-hero-content h1{font-size:clamp(30px,4.6vw,54px);max-width:18ch;}

/* ---------- Pillars ---------- */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);}
.pillar{background:var(--paper);padding:44px 32px;}
.pillar h3{font-size:22px;margin-bottom:14px;}
.pillar p{color:#4a453e;font-size:15px;}

/* ---------- Journey ---------- */
.journey{display:flex;flex-wrap:wrap;gap:0;align-items:flex-start;}
.journey .step{flex:1 1 120px;padding:0 20px 0 0;position:relative;}
.journey .step h4{font-family:var(--font-display);font-style:italic;font-size:19px;color:var(--wine);margin-bottom:8px;}
.journey .step p{font-size:14px;color:#4a453e;}
.journey .arrow{align-self:center;color:var(--sand);font-family:var(--font-display);font-size:20px;padding:0 6px;}

/* ---------- Testimonials ---------- */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;}
.testi blockquote{margin:0;font-family:var(--font-display);font-size:20px;font-style:italic;line-height:1.4;}
.testi cite{display:block;margin-top:16px;font-style:normal;font-size:14px;color:var(--sand);}

/* ---------- Experiencias list ---------- */
.exp-list{display:flex;flex-direction:column;}
.exp-row{
  display:grid;grid-template-columns:1fr 1.3fr;gap:60px;align-items:center;
  padding:56px 0;border-bottom:1px solid var(--line);
}
.exp-row:first-child{padding-top:0;}
.exp-row img{aspect-ratio:5/4;object-fit:cover;}
.exp-row h3{font-size:clamp(24px,2.6vw,34px);}
.exp-row p{color:#4a453e;margin:16px 0 24px;}
.exp-row:nth-child(even){grid-template-columns:1.3fr 1fr;}
.exp-row:nth-child(even) .exp-row-img{order:2;}

/* ---------- Single historia gallery ---------- */
.story-hero{position:relative;height:78vh;min-height:480px;overflow:hidden;}
.story-hero img{position:absolute;top:-30%;left:0;width:100%;height:160%;object-fit:cover;object-position:center 15%;will-change:transform;}
.story-meta{padding:56px 0 36px;border-bottom:1px solid var(--line);}
.story-meta .label{font-family:var(--font-display);font-style:italic;color:var(--wine);}
.story-meta h1{font-size:clamp(30px,4vw,48px);margin-top:12px;max-width:18ch;}
.story-meta .info{display:flex;gap:28px;margin-top:22px;font-size:14px;color:var(--sand);}
.story-text{max-width:64ch;margin:44px 0;color:#3a352f;font-size:18px;line-height:1.75;}

.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:24px;}
.gallery figure{margin:0;overflow:hidden;background:var(--paper-2);}
.gallery img{width:100%;height:100%;object-fit:cover;}
.gallery .g-full{grid-column:span 6;aspect-ratio:16/9;}
.gallery .g-half{grid-column:span 3;aspect-ratio:4/5;}
.gallery .g-vert{grid-column:span 2;aspect-ratio:3/4;}
.gallery .g-third{grid-column:span 2;aspect-ratio:1/1;}

/* ---------- Contact ---------- */
.contact-wrap{display:grid;grid-template-columns:1fr 1fr;gap:80px;}
.field{margin-bottom:22px;}
.field label{display:block;font-size:14px;margin-bottom:8px;color:#4a453e;}
.field input,.field select,.field textarea{
  width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;
  padding:12px 0;font-family:var(--font-body);font-size:16px;color:var(--ink);
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--wine);}
.contact-info h3{font-size:24px;margin-bottom:18px;}
.contact-info p{color:#4a453e;}
.contact-info .whats{display:inline-block;margin-top:24px;}

/* ---------- Focus visibility ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--wine);outline-offset:3px;
}

/* ---------- Responsive ---------- */
@media (max-width: 1080px){
  .exp-grid{grid-template-columns:repeat(2,1fr);}
  .intro,.casa-teaser,.contact-wrap{grid-template-columns:1fr;gap:40px;}
  .col-grid,.pillars,.testi-grid,.post-grid{grid-template-columns:repeat(2,1fr);}
  .exp-row,.exp-row:nth-child(even){grid-template-columns:1fr;}
  .exp-row:nth-child(even) .exp-row-img{order:0;}
  .port-grid a,.port-grid a.wide,.port-grid a.narrow{grid-column:span 3;}
}
@media (max-width: 720px){
  .wrap{padding:0 22px;}
  nav.main-nav{
    position:fixed;top:84px;left:0;right:0;bottom:0;background:var(--paper);
    flex-direction:column;justify-content:flex-start;align-items:flex-start;
    padding:40px 22px;gap:26px;transform:translateX(100%);transition:transform .3s ease;
  }
  nav.main-nav.open{transform:translateX(0);}
  nav.main-nav a{font-size:20px;font-family:var(--font-display);}
  .hamburger{display:block;}
  .hero-actions{flex-direction:column;}
  .exp-grid{grid-template-columns:repeat(2,1fr);}
  .col-grid,.pillars,.testi-grid,.post-grid{grid-template-columns:1fr;}
  .port-grid{grid-template-columns:repeat(2,1fr);}
  .port-grid a,.port-grid a.wide,.port-grid a.narrow{grid-column:span 2;}
  .gallery{grid-template-columns:repeat(2,1fr);}
  .gallery .g-full{grid-column:span 2;}
  .gallery .g-half,.gallery .g-vert,.gallery .g-third{grid-column:span 1;}
  section{padding:72px 0;}
  .foot-grid{grid-template-columns:1fr 1fr;}
}
