:root{
  --ink:#16303D;
  --azulejo:#2E6E7E;
  --terracotta:#C1632E;
  --calcada:#EDE7DC;
  --paper:#FAF7F1;
  --stone:#8C8579;
  --line: rgba(22,48,61,0.12);
}
*{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; } }

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

.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(250,247,241,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(--paper); padding:16px 30px; border-radius:2px; font-size:14px; font-weight:500; display:inline-block; transition:transform 0.2s ease; }
.btn-primary:hover{ 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,#2E6E7E,#16303D); 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,#C1632E,#7a3f1a); 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,#8C8579,#4a463d); 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,#2E6E7E,#16303D); }
.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,#C1632E,#8a4a22); }
.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,#8C8579,#4a463d); }
.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,#16303D,#2E6E7E); }
.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,#4a463d,#8C8579); }
.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,#7a3f1a,#C1632E); }
.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); }
.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; }
