:root { --font-sans:"DM Sans"; --font-display:"Manrope"; --ink:#11100f; --soft:#59534d; --cream:#f4efe8; --paper:#fffaf4; --coral:#ff6752; --line:rgba(17,16,15,.24); --white:#fffdf9; --max:1168px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:var(--font-sans),Arial,sans-serif; font-size:16px; line-height:1.55; text-rendering:optimizeLegibility; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
::selection { background:var(--coral); color:var(--ink); }
:focus-visible { outline:3px solid var(--coral); outline-offset:4px; }
.shell { width:min(calc(100% - 64px),var(--max)); margin-inline:auto; }
.site-header { position:absolute; inset:0 0 auto; z-index:10; border-bottom:1px solid var(--line); }
.nav-wrap { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; min-height:88px; gap:28px; }
.brand { display:inline-flex; align-items:baseline; justify-self:start; font-family:var(--font-display),Arial,sans-serif; font-size:1.18rem; font-weight:800; letter-spacing:-.05em; line-height:1; white-space:nowrap; }
.brand em { margin-left:.28em; font-family:Georgia,serif; font-size:1.15em; font-weight:400; letter-spacing:-.06em; }
.desktop-nav { display:flex; gap:34px; font-size:.78rem; font-weight:700; }
.nav-cta { justify-self:end; display:inline-flex; align-items:center; gap:18px; min-height:46px; padding:0 17px; background:var(--ink); color:var(--white); font-size:.74rem; font-weight:750; transition:.18s ease; }
.nav-cta:hover,.button-dark:hover { background:var(--coral); color:var(--ink); }
.mobile-menu { display:none; justify-self:end; }
.mobile-menu summary { cursor:pointer; font-size:.76rem; font-weight:750; list-style:none; }
.mobile-menu summary::-webkit-details-marker { display:none; }
.mobile-menu-panel { position:absolute; top:72px; right:20px; left:20px; display:grid; padding:10px 18px; border:1px solid var(--ink); background:var(--paper); box-shadow:0 16px 38px rgba(0,0,0,.12); }
.mobile-menu-panel a { padding:13px 2px; border-bottom:1px solid var(--line); }
.mobile-menu-panel a:last-child { border:0; }
.hero { min-height:720px; display:grid; align-items:end; padding:150px 0 76px; background:var(--cream); }
.hero-grid { display:grid; grid-template-columns:1fr auto; gap:80px; align-items:end; }
.kicker { margin:0 0 20px; font-size:.62rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.hero h1,.section-heading h2,.about-copy h2,.contact-strip h2 { margin:0; font-family:var(--font-display),Arial,sans-serif; font-size:clamp(4.6rem,9vw,8.4rem); font-weight:750; letter-spacing:-.082em; line-height:.83; }
.hero h1 em,.section-heading h2 em,.about-copy h2 em,.contact-strip h2 em { font-family:Georgia,serif; font-weight:400; }
.hero h1 em { color:var(--coral); }
.hero-lead { max-width:600px; margin:42px 0 0; color:var(--soft); font-size:1.08rem; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:32px; }
.button { display:inline-flex; min-height:54px; align-items:center; justify-content:space-between; gap:30px; padding:0 19px; border:1px solid var(--ink); font-size:.75rem; font-weight:750; transition:.18s ease; }
.button:hover { transform:translateY(-2px); }
.button-dark { background:var(--ink); color:var(--white); }
.button-coral { background:var(--coral); }
.button-coral:hover { background:var(--ink); color:var(--white); }
.text-link { display:inline-flex; gap:17px; align-items:center; padding-bottom:3px; border-bottom:1px solid currentColor; font-size:.76rem; font-weight:750; }
.hero-note { display:grid; min-width:190px; border-top:1px solid var(--ink); }
.hero-note span { padding:12px 0; border-bottom:1px solid var(--ink); font-size:.62rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.section { padding:120px 0; }
.services { border-top:1px solid var(--ink); background:var(--paper); }
.section-heading h2,.about-copy h2,.contact-strip h2 { font-size:clamp(3.5rem,6vw,5.7rem); }
.service-list { margin-top:72px; border-top:1px solid var(--ink); }
.service-row { display:grid; grid-template-columns:46px 1fr 1fr 50px; gap:28px; align-items:center; padding:36px 0; border-bottom:1px solid var(--ink); }
.service-number { align-self:start; padding-top:6px; color:var(--coral); font-size:.68rem; font-weight:800; }
.service-title small { color:var(--soft); font-size:.58rem; font-weight:750; letter-spacing:.12em; text-transform:uppercase; }
.service-title h3 { margin:5px 0 0; font-family:var(--font-display),Arial,sans-serif; font-size:clamp(1.5rem,2.6vw,2.35rem); font-weight:750; letter-spacing:-.055em; line-height:1; }
.service-row>p { max-width:430px; margin:0; color:var(--soft); font-size:.9rem; }
.round-link { display:grid; width:46px; height:46px; place-items:center; border:1px solid var(--ink); border-radius:50%; transition:.18s ease; }
.round-link:hover { background:var(--coral); transform:rotate(9deg); }
.about { background:var(--cream); }
.about-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:96px; align-items:center; }
.about-photo { position:relative; width:min(100%,420px); }
.about-photo:before { position:absolute; inset:-17px 17px 17px -17px; border:1px solid var(--ink); background:var(--coral); content:""; }
.about-photo img { position:relative; width:100%; aspect-ratio:4/5; border:1px solid var(--ink); object-fit:cover; object-position:center 22%; }
.about-copy { max-width:620px; }
.about-copy h2 em { color:var(--coral); }
.about-lead { margin:34px 0 16px; font-family:Georgia,serif; font-size:1.42rem; letter-spacing:-.035em; line-height:1.25; }
.about-copy>p:not(.kicker):not(.about-lead) { color:var(--soft); }
.about-copy .button { margin-top:24px; }
.contact-strip { padding:94px 0; border-top:1px solid var(--ink); background:var(--paper); }
.contact-strip-grid { display:grid; grid-template-columns:1fr .85fr; gap:96px; align-items:end; }
.contact-strip h2 em { color:var(--coral); }
.contact-action-wrap>p { max-width:570px; margin:0 0 30px; color:var(--soft); }
.contact-buttons { display:flex; flex-wrap:wrap; gap:12px; }
.contact-button { display:grid; grid-template-columns:38px 1fr auto; gap:13px; align-items:center; min-width:230px; min-height:70px; padding:11px 15px 11px 12px; border:1px solid var(--ink); font-size:.9rem; font-weight:750; line-height:1.15; transition:.18s ease; }
.contact-button:hover { transform:translateY(-3px); box-shadow:5px 5px 0 var(--ink); }
.contact-whatsapp { background:var(--coral); }
.contact-email { background:var(--ink); color:var(--white); }
.contact-icon { display:grid; width:38px; height:38px; place-items:center; border:1px solid currentColor; border-radius:50%; font-family:Arial,sans-serif; font-size:1.05rem; }
.contact-button small { display:block; margin-bottom:3px; font-size:.52rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; opacity:.72; }
.contact-button b { font-size:.82rem; font-weight:500; }
.site-footer { padding:70px 0 30px; background:var(--ink); color:var(--white); }
.footer-top { display:grid; grid-template-columns:1fr auto; gap:80px; padding-bottom:54px; }
.footer-brand { max-width:430px; }
.footer-brand .brand { font-size:1.45rem; }
.footer-brand p { margin:24px 0 0; color:rgba(255,255,255,.65); }
.footer-links { display:grid; align-content:start; gap:13px; font-size:.76rem; font-weight:700; }
.footer-bottom { display:flex; justify-content:space-between; padding-top:22px; border-top:1px solid rgba(255,255,255,.28); color:rgba(255,255,255,.55); font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; }
.reveal { animation:rise .65s both ease-out; }
@keyframes rise { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:800px) {
  .shell { width:min(calc(100% - 38px),var(--max)); }
  .nav-wrap { grid-template-columns:1fr auto; min-height:74px; }
  .desktop-nav,.nav-cta { display:none; }
  .mobile-menu { display:block; }
  .brand { font-size:1.02rem; }
  .hero { min-height:auto; padding:126px 0 70px; }
  .hero-grid,.about-grid,.contact-strip-grid { grid-template-columns:1fr; gap:52px; }
  .hero h1 { font-size:clamp(4rem,18vw,6.8rem); }
  .hero-note { min-width:0; grid-template-columns:repeat(3,1fr); }
  .hero-note span { text-align:center; font-size:.52rem; }
  .section { padding:88px 0; }
  .service-list { margin-top:52px; }
  .service-row { grid-template-columns:34px 1fr 48px; gap:14px; }
  .service-row>p { grid-column:2/3; }
  .service-row .round-link { grid-column:3; grid-row:1/span 2; }
  .about-photo { width:min(82%,420px); margin-left:18px; }
  .contact-strip { padding:72px 0; }
  .footer-top { grid-template-columns:1fr; gap:40px; }
}
@media (max-width:520px) {
  .hero h1 { font-size:clamp(3.55rem,17vw,5.4rem); }
  .hero-actions { display:grid; align-items:start; }
  .button { width:100%; }
  .section-heading h2,.about-copy h2,.contact-strip h2 { font-size:clamp(3.1rem,15vw,4.5rem); }
  .service-row { padding:28px 0; }
  .service-title h3 { font-size:1.45rem; }
  .contact-buttons { display:grid; }
  .contact-button { width:100%; min-width:0; }
  .footer-bottom { flex-direction:column; gap:10px; align-items:flex-start; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .reveal { animation:none; } *,*::before,*::after { transition-duration:.01ms!important; } }
