:root{
  --ink:#193226;
  --azulejo:#244A38;
  --terracotta:#D2A62F;
  --calcada:#F4F0E7;
  --paper:#FBFAF6;
  --stone:#58645D;
  --line:rgba(25,50,38,0.16);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper); color:var(--ink); font-family:'Inter', sans-serif;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
@media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; } }
.wrap{ max-width:1160px; margin:0 auto; padding:0 32px; }
a{ color:inherit; text-decoration:none; }
section{ padding:104px 0; }
@media (max-width:780px){ section{ padding:60px 0; } .wrap{ padding:0 22px; } }

/* content is always visible — no scroll-in animation (it left sections half-transparent on phones) */

.tile-frieze{
  height:26px; width:100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Cg fill='none' stroke='%232E6E7E' stroke-width='1'%3E%3Cpath d='M13 2 L24 13 L13 24 L2 13 Z'/%3E%3Ccircle cx='13' cy='13' r='4'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: repeat-x; background-size:26px 26px; opacity:0.45;
}

/* nav */
nav{ position:sticky; top:0; z-index:50; background:rgba(251,250,246,0.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
nav .wrap{ display:flex; align-items:center; justify-content:space-between; height:74px; }
.logo{ font-family:'Fraunces', serif; font-size:19px; font-weight:500; }
.logo span{ color:var(--azulejo); }
.navlinks{ display:flex; align-items:center; gap:32px; font-size:14px; color:var(--stone); }
.navlinks a:hover{ color:var(--ink); }
.lang-toggle{ font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.05em; border:1px solid var(--line); padding:5px 10px; border-radius:2px; }
.lang-toggle:hover{ color:var(--ink); border-color:var(--azulejo); }
.book-btn{ background:var(--ink); color:var(--paper); font-size:14px; font-weight:500; padding:11px 22px; border-radius:2px; transition:background 0.2s ease; }
.book-btn:hover{ background:var(--azulejo); }
@media (max-width:860px){ .navlinks a:not(.lang-toggle){ display:none; } }

/* hero */
header.hero{ padding:80px 0 40px; }
.hero-shell{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center; }
@media (max-width:940px){ .hero-shell{ grid-template-columns:1fr; gap:52px; } }
.hero-eyebrow{ font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.15em; text-transform:uppercase; color:var(--azulejo); margin-bottom:22px; display:flex; align-items:center; gap:10px; }
.hero-eyebrow::before{ content:''; width:20px; height:1px; background:var(--azulejo); display:inline-block; }
.hero h1{ font-family:'Fraunces', serif; font-weight:400; font-size:clamp(36px,4.6vw,58px); line-height:1.08; letter-spacing:-0.01em; }
.hero h1 em{ font-style:italic; color:var(--azulejo); font-weight:400; }
.hero p.sub{ margin-top:22px; font-size:17px; line-height:1.65; color:var(--stone); max-width:480px; }
.hero-actions{ display:flex; gap:16px; margin-top:34px; flex-wrap:wrap; }
.btn-primary{ background:var(--terracotta); color:var(--ink); padding:16px 30px; border-radius:2px; font-size:14px; font-weight:600; display:inline-block; transition:transform 0.2s ease, background .2s ease; }
.btn-primary:hover{ background:#DDB744; transform:translateY(-2px); }
.btn-ghost{ border:1px solid var(--line); padding:16px 30px; border-radius:2px; font-size:14px; font-weight:500; }
.hero-est{ margin-top:40px; font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--stone); letter-spacing:0.03em; }

/* hero collage */
.collage{ position:relative; height:440px; }
@media (max-width:940px){ .collage{ height:320px; } }
.cl-tile{ position:absolute; border-radius:3px; box-shadow:0 22px 44px rgba(22,48,61,0.16); overflow:hidden; }
.cl-tile .cap{ position:absolute; left:0; right:0; bottom:0; padding:14px 16px; background:linear-gradient(0deg, rgba(22,48,61,0.72), transparent); }
.cl-tile .cap b{ display:block; color:var(--paper); font-family:'Fraunces', serif; font-size:14.5px; font-weight:500; }
.cl-tile .cap span{ color:rgba(250,247,241,0.75); font-size:11px; font-family:'IBM Plex Mono', monospace; }
.cl-tile img, .g-tile img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cl-1{ width:64%; height:64%; top:0; right:0; background:
    repeating-linear-gradient(135deg, rgba(250,247,241,0.06) 0 2px, transparent 2px 16px),
    linear-gradient(150deg,#244A38,#193226); transform:rotate(1.5deg); z-index:2; }
.cl-2{ width:44%; height:46%; bottom:0; left:0; background:
    repeating-linear-gradient(20deg, rgba(250,247,241,0.07) 0 2px, transparent 2px 14px),
    linear-gradient(150deg,#D2A62F,#8B6817); transform:rotate(-2deg); z-index:3; }
.cl-3{ width:40%; height:40%; top:8%; left:2%; background:
    radial-gradient(circle at 30% 30%, rgba(250,247,241,0.12), transparent 60%),
    linear-gradient(150deg,#58645D,#193226); transform:rotate(-3deg); z-index:1; }

/* stat strip */
.stats{ background:var(--ink); color:var(--paper); }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:32px; padding:44px 0; }
@media (max-width:780px){ .stats-grid{ grid-template-columns:1fr 1fr; } }
.stat b{ display:block; font-family:'Fraunces', serif; font-size:32px; font-weight:400; }
.stat span{ font-size:12px; color:rgba(250,247,241,0.6); font-family:'IBM Plex Mono', monospace; letter-spacing:0.04em; }

/* section head */
.section-head{ margin-bottom:52px; max-width:560px; }
.section-eyebrow{ font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--terracotta); margin-bottom:14px; }
.section-head h2{ font-family:'Fraunces', serif; font-size:36px; font-weight:400; line-height:1.15; }
.section-head p{ color:var(--stone); margin-top:14px; font-size:15px; line-height:1.6; }

/* how it works */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
@media (max-width:820px){ .steps{ grid-template-columns:1fr; gap:36px; } }
.step .n{ font-family:'Fraunces', serif; font-size:44px; font-weight:300; color:var(--azulejo); line-height:1; margin-bottom:16px; }
.step h3{ font-family:'Fraunces', serif; font-size:20px; font-weight:500; margin-bottom:10px; }
.step p{ font-size:14.5px; color:var(--stone); line-height:1.7; max-width:300px; }

/* in-house */
.inhouse{ background:var(--calcada); }
.inhouse-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:52px; }
@media (max-width:980px){ .inhouse-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .inhouse-grid{ grid-template-columns:1fr; } }
.inhouse-card{ background:var(--calcada); padding:36px 26px; }
.inhouse-card .tag{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--azulejo); margin-bottom:18px; }
.inhouse-card h3{ font-family:'Fraunces', serif; font-size:22px; font-weight:500; margin-bottom:12px; }
.inhouse-card p{ font-size:14.5px; color:var(--stone); line-height:1.7; }
.inhouse-note{ margin-top:32px; font-size:14.5px; color:var(--ink); max-width:640px; line-height:1.7; }
.inhouse-note b{ font-weight:600; }

/* risk alignment */
.risk-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:52px; }
@media (max-width:780px){ .risk-grid{ grid-template-columns:1fr; } }
.risk-card{ background:var(--paper); padding:38px 34px; }
.risk-card.us{ background:var(--ink); color:var(--paper); }
.risk-card .tag{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:18px; color:var(--stone); }
.risk-card.us .tag{ color:#6FA8B5; }
.risk-card h3{ font-family:'Fraunces', serif; font-size:21px; font-weight:500; margin-bottom:18px; }
.risk-card ul{ list-style:none; }
.risk-card li{ font-size:14px; line-height:1.7; margin-bottom:12px; padding-left:18px; position:relative; color:var(--stone); }
.risk-card.us li{ color:rgba(250,247,241,0.72); }
.risk-card li::before{ content:'−'; position:absolute; left:0; color:var(--terracotta); }
.risk-card.us li::before{ content:'+'; color:#6FA8B5; }
.risk-lede{ margin-top:28px; font-size:15px; color:var(--ink); max-width:680px; line-height:1.75; }

/* testimonials */
.testimonials{ background:var(--calcada); }
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media (max-width:900px){ .testi-grid{ grid-template-columns:1fr; } }
.testi-card{ background:var(--paper); border:1px solid var(--line); padding:32px 28px; border-radius:2px; }
.testi-mark{ font-family:'Fraunces', serif; font-size:40px; color:var(--azulejo); line-height:1; margin-bottom:8px; }
.testi-card p{ font-family:'Fraunces', serif; font-size:16.5px; font-style:italic; line-height:1.55; color:var(--ink); }
.testi-attr{ margin-top:20px; font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:var(--stone); text-transform:uppercase; letter-spacing:0.03em; }
.testi-note{ margin-top:24px; font-size:12.5px; color:var(--stone); font-family:'IBM Plex Mono', monospace; }

/* gallery (bento) */
.gallery-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); grid-auto-rows:150px; gap:14px;
}
@media (max-width:820px){ .gallery-grid{ grid-template-columns:repeat(2, 1fr); grid-auto-rows:130px; } }
.g-tile{ position:relative; border-radius:3px; overflow:hidden; cursor:default; transition:transform 0.35s ease; }
.g-tile:hover{ transform:translateY(-3px); }
.g-tile .cap{ position:absolute; left:0; right:0; bottom:0; padding:14px 16px; background:linear-gradient(0deg, rgba(22,48,61,0.78), transparent 70%); }
.g-tile .cap b{ display:block; color:var(--paper); font-family:'Fraunces', serif; font-size:14.5px; font-weight:500; }
.g-tile .cap span{ color:rgba(250,247,241,0.7); font-size:10.5px; font-family:'IBM Plex Mono', monospace; letter-spacing:0.03em; text-transform:uppercase; }
.g1{ grid-column:span 2; grid-row:span 2; background:
    repeating-linear-gradient(135deg, rgba(250,247,241,0.05) 0 2px, transparent 2px 18px),
    linear-gradient(155deg,#244A38,#193226); }
.g2{ grid-column:span 2; grid-row:span 1; background:
    repeating-linear-gradient(0deg, rgba(250,247,241,0.06) 0 1px, transparent 1px 10px),
    linear-gradient(155deg,#D2A62F,#8B6817); }
.g3{ grid-column:span 1; grid-row:span 1; background:
    radial-gradient(circle at 70% 30%, rgba(250,247,241,0.14), transparent 55%),
    linear-gradient(155deg,#58645D,#193226); }
.g4{ grid-column:span 1; grid-row:span 1; background:
    repeating-linear-gradient(45deg, rgba(250,247,241,0.06) 0 2px, transparent 2px 12px),
    linear-gradient(155deg,#193226,#244A38); }
.g5{ grid-column:span 2; grid-row:span 1; background:
    repeating-linear-gradient(90deg, rgba(250,247,241,0.05) 0 1px, transparent 1px 14px),
    linear-gradient(155deg,#193226,#58645D); }
.g6{ grid-column:span 2; grid-row:span 1; background:
    radial-gradient(circle at 30% 60%, rgba(250,247,241,0.12), transparent 55%),
    linear-gradient(155deg,#8B6817,#D2A62F); }
.gallery-note{ margin-top:26px; font-size:13px; color:var(--stone); font-family:'IBM Plex Mono', monospace; }

/* owners of any size */
.fit{ background:var(--ink); color:var(--paper); }
.fit .section-head h2{ color:var(--paper); }
.fit .section-head p{ color:rgba(250,247,241,0.6); }
.fit-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(250,247,241,0.15); border:1px solid rgba(250,247,241,0.15); margin-top:48px; }
@media (max-width:780px){ .fit-grid{ grid-template-columns:1fr; } }
.fit-card{ background:var(--ink); padding:40px 36px; }
.fit-card .tag{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:#6FA8B5; margin-bottom:16px; }
.fit-card h3{ font-family:'Fraunces', serif; font-size:24px; font-weight:400; margin-bottom:12px; }
.fit-card p{ font-size:14.5px; color:rgba(250,247,241,0.65); line-height:1.7; }

/* lead form */
.lead-shell{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px; align-items:start; }
@media (max-width:900px){ .lead-shell{ grid-template-columns:1fr; gap:40px; } }
.lead-copy h2{ font-family:'Fraunces', serif; font-size:36px; font-weight:400; line-height:1.15; max-width:400px; }
.lead-copy p{ color:var(--stone); margin-top:16px; font-size:15px; line-height:1.65; max-width:380px; }
.lead-list{ margin-top:28px; }
.lead-list li{ list-style:none; font-size:14px; color:var(--ink); margin-bottom:12px; padding-left:20px; position:relative; }
.lead-list li::before{ content:'—'; position:absolute; left:0; color:var(--azulejo); }

/* faq */
.faq-list{ display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:12px; }
.faq-item{ background:var(--paper); padding:22px 26px; }
.faq-item summary{ cursor:pointer; font-family:'Fraunces', serif; font-size:17px; font-weight:500; color:var(--ink); list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:'+'; color:var(--terracotta); font-family:'IBM Plex Mono', monospace; font-size:18px; flex-shrink:0; }
.faq-item[open] summary::after{ content:'−'; }
.faq-item p{ margin-top:14px; font-size:14.5px; color:var(--stone); line-height:1.7; max-width:680px; }

/* guides / blog */
.guide-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:24px; }
.guide-card{ background:var(--paper); padding:32px 28px; }
.guide-card .tag{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--azulejo); margin-bottom:14px; }
.guide-card h2{ font-family:'Fraunces', serif; font-size:22px; font-weight:500; margin-bottom:10px; }
.guide-card p{ font-size:14.5px; color:var(--stone); line-height:1.7; margin-bottom:16px; }
.guide-card .read-more{ font-family:'IBM Plex Mono', monospace; font-size:12px; text-transform:uppercase; letter-spacing:0.05em; color:var(--azulejo); }

form.offer-form{ border:1px solid var(--line); padding:36px; border-radius:2px; background:var(--calcada); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
@media (max-width:520px){ .form-row{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:6px; }
.field.full{ grid-column:1/-1; }
.field label{ font-size:12px; font-family:'IBM Plex Mono', monospace; color:var(--stone); letter-spacing:0.03em; }
.field input, .field select, .field textarea{
  border:1px solid var(--line); background:var(--paper); padding:12px 14px; font-size:14px; border-radius:2px; font-family:'Inter', sans-serif; color:var(--ink);
}
.field textarea{ resize:vertical; min-height:80px; }
.consent-row{ display:flex; align-items:flex-start; gap:10px; margin:18px 0; font-size:13px; color:var(--stone); line-height:1.5; }
.consent-row input{ margin-top:3px; flex-shrink:0; }
.consent-row a{ color:var(--azulejo); text-decoration:underline; }
.honeypot-field{ position:absolute; left:-9999px; top:-9999px; }
.submit-btn{ background:var(--terracotta); color:var(--paper); border:none; padding:15px 30px; border-radius:2px; font-size:14px; font-weight:500; cursor:pointer; width:100%; margin-top:6px; }

footer{ background:var(--calcada); padding:56px 0 34px; }
.footer-grid{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px; }
.footer-logo{ font-family:'Fraunces', serif; font-size:20px; }
.footer-links{ display:flex; gap:28px; font-size:13.5px; color:var(--stone); }
@media (max-width:520px){ .footer-links{ flex-wrap:wrap; gap:12px 20px; } }
.footer-bottom{ margin-top:36px; padding-top:20px; border-top:1px solid var(--line); font-size:12px; color:var(--stone); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.footer-legal{ margin-top:12px; font-size:11.5px; color:var(--stone); line-height:1.6; max-width:640px; }

/* simple content pages (privacy, thank-you) */
.simple-page{ padding:72px 0 100px; }
.simple-page h1{ font-family:'Fraunces', serif; font-size:clamp(28px,4vw,42px); font-weight:400; margin-bottom:28px; }
.simple-page h2{ font-family:'Fraunces', serif; font-size:22px; font-weight:500; margin-top:40px; margin-bottom:12px; }
.simple-page p, .simple-page li{ font-size:15px; line-height:1.75; color:var(--ink); }
.simple-page p{ margin-bottom:14px; }
.simple-page ul{ padding-left:20px; margin-bottom:14px; }
.simple-page .updated{ font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--stone); margin-bottom:36px; display:block; }
.thanks-shell{ text-align:center; padding:120px 0; }
.thanks-shell h1{ font-family:'Fraunces', serif; font-size:clamp(28px,4vw,42px); font-weight:400; margin-bottom:18px; }
.thanks-shell p{ color:var(--stone); font-size:16px; margin-bottom:34px; }

/* phone: a photo next to the title, compact numbers band (2026-10-11) */
@media (max-width:940px){
  header.hero{ padding:28px 0 32px; }
  .hero-shell{ gap:28px; }
  .hero-shell > .collage{ order:-1; height:220px; }
  .collage .cl-2, .collage .cl-3{ display:none; }
  .collage .cl-1{ width:100%; height:100%; transform:none; }
}
@media (max-width:780px){
  .stats-grid{ grid-template-columns:repeat(4,1fr); gap:10px; padding:18px 0; }
  .stat b{ font-size:22px; }
  .stat span{ font-size:10px; line-height:1.3; display:block; }
}
/* short form */
.form-hint{ font-size:12.5px; color:var(--stone); margin:-6px 0 14px; }
.form-hint.err{ color:#A3341C; font-weight:600; }
/* developers & investors */
.dev{ background:var(--paper); }
.dev-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px; }
@media (max-width:860px){ .dev-grid{ grid-template-columns:1fr; } }
.dev-card{ border-top:2px solid var(--azulejo); padding-top:20px; }
.dev-card h3{ font-family:'Fraunces', serif; font-size:21px; font-weight:400; margin-bottom:10px; }
.dev-card p{ font-size:14.5px; color:var(--stone); line-height:1.7; }
.dev-cta{ display:flex; gap:16px; flex-wrap:wrap; margin-top:36px; }
/* floating WhatsApp + call */
.float-contact{ position:fixed; right:18px; bottom:18px; z-index:50; display:flex; gap:10px; align-items:center; }
.float-contact a{ display:inline-flex; align-items:center; gap:8px; text-decoration:none; border-radius:999px; box-shadow:0 8px 22px rgba(22,48,61,0.22); font:600 15px/1 'Inter', system-ui, sans-serif; }
.fc-wa{ background:#1F8F55; color:#fff; padding:13px 18px 13px 14px; }
.fc-call{ background:var(--ink); color:var(--paper); width:48px; height:48px; justify-content:center; }
@media (max-width:560px){ .fc-wa span{ display:none; } .fc-wa{ width:52px; height:52px; padding:0; justify-content:center; } .float-contact{ right:14px; bottom:14px; } }
