body:has(.fortis-site-footer){ background:#0c0b09; overflow-x:hidden; }

/* every element inside our widgets sizes with border-box — without this, any width:100% element that also has padding/border (direction images, cards, inputs, etc.) silently overflows its own container by the padding+border amount, which compounds badly at narrow widths */
.fortis-w, .fortis-w *, .fortis-w *::before, .fortis-w *::after{ box-sizing:border-box; }
.fortis-w img, .fortis-w svg{ max-width:100%; }

.fortis-w{
  --bg:#0c0b09; --bg-2:#141310; --text:#f4efe4; --text-faint:#a89f8f;
  --sage:#7ca24f; --sage-hi:#96bd68;
  --line:rgba(250,246,239,.16); --line-strong:rgba(250,246,239,.30);
  --shadow-sm:0 10px 32px -18px rgba(0,0,0,.6); --shadow-lg:0 34px 76px -28px rgba(0,0,0,.72);
  --r-pill:999px; --r-lg:clamp(22px,2.6vw,40px); --r-md:18px;
  --ease:cubic-bezier(.16,.84,.44,1);
  --font-ge-head:'Jost',sans-serif; --font-ge-body:sans-serif;
  --font-en-head:'Jost',sans-serif; --font-en-body:'Inter',sans-serif;
  font-family:var(--font-ge-body); color:var(--text) !important; -webkit-font-smoothing:antialiased;
}
.fortis-w h1, .fortis-w h2, .fortis-w h3, .fortis-w h4, .fortis-w h5, .fortis-w h6{ font-family:var(--font-ge-head) !important; font-weight:500 !important; line-height:1.15 !important; color:var(--text) !important; text-wrap:balance; margin:0 0 16px !important; }
/* heading-style text with a user-chosen HTML tag (h1-h6/p/div) — styled by class, not tag, so the tag choice never affects appearance */
.fortis-section-head-title, .fortis-hero-title, .fortis-direction-title, .fortis-banner-title, .fortis-cta-title, .fortis-process-title, .fortis-contact-title{ font-family:var(--font-ge-head) !important; font-weight:500 !important; line-height:1.15 !important; color:var(--text) !important; text-wrap:balance; margin:0 0 16px !important; }
.fortis-w p{ margin:0; line-height:1.65; color:var(--text-faint) !important; }
.fortis-w a{ text-decoration:none; }

.fortis-eyebrow{ display:inline-flex; align-items:center; gap:10px; font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; color:var(--sage) !important; font-weight:500; margin-bottom:12px; text-shadow:0 1px 8px rgba(0,0,0,.5); }
.fortis-eyebrow::before{ content:""; width:22px; height:1px; background:var(--sage); display:inline-block; }

a.fortis-btn.fortis-btn:link, a.fortis-btn.fortis-btn:visited, a.fortis-btn.fortis-btn,
button.fortis-btn.fortis-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 30px; border-radius:var(--r-pill);
  border:1px solid var(--line-strong); background:transparent; color:var(--text, #f4efe4) !important; font-family:inherit; font-size:.92rem; font-weight:500; letter-spacing:.01em; white-space:nowrap; text-decoration:none !important; cursor:pointer; -webkit-appearance:none; appearance:none; margin:0;
  transition:background .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease), transform .35s var(--ease);
}
a.fortis-btn.fortis-btn:hover, button.fortis-btn.fortis-btn:hover{ background:var(--sage, #7ca24f) !important; color:#fff !important; border-color:var(--sage, #7ca24f) !important; transform:translateY(-3px); }
a.fortis-btn.fortis-btn.solid, button.fortis-btn.fortis-btn.solid{ background:var(--sage, #7ca24f) !important; border-color:var(--sage, #7ca24f) !important; color:#0c0b09 !important; font-weight:600; }
a.fortis-btn.fortis-btn.solid:hover, button.fortis-btn.fortis-btn.solid:hover{ background:var(--sage-hi, #96bd68) !important; border-color:var(--sage-hi, #96bd68) !important; color:#0c0b09 !important; }
button.fortis-btn.fortis-btn:focus{ outline:2px solid var(--sage, #7ca24f); outline-offset:2px; }

/* section head */
.fortis-section-head{ margin-bottom:44px; }
.fortis-section-head.center{ text-align:center; }
.fortis-section-head.center .fortis-eyebrow::before{ display:none; }
.fortis-section-head-title{ font-size:clamp(1.7rem,3.2vw,2.4rem); }

/* hero */
.fortis-hero{ position:relative; min-height:clamp(420px,70vh,760px); display:flex; align-items:center; padding:130px 6vw 60px; overflow:hidden; }
@media (max-width:560px){
  .fortis-hero{ padding:110px 6vw 40px; min-height:620px; min-height:100svh; }
  .fortis-hero-scrim{ background:linear-gradient(180deg, rgba(12,11,9,.42) 0%, rgba(12,11,9,.34) 32%, rgba(12,11,9,.92) 100%); }
  .fortis-hero-title{ font-size:clamp(1.6rem,7.2vw,2.1rem); }
  .fortis-hero-content .lead{ font-size:.96rem; margin-bottom:20px; }
  .fortis-hero-actions{ gap:10px; }
  .fortis-hero-actions .fortis-btn{ padding:12px 20px; font-size:.84rem; }
}

/* compact hero variant — same image/scrim/text treatment as the main hero (incl. the mobile svh fix), just shorter, for inner pages */
.fortis-hero-compact{ min-height:clamp(340px,52vh,520px); padding-bottom:50px; }
@media (max-width:560px){
  .fortis-hero-compact{ padding:110px 6vw 36px; min-height:420px; min-height:62svh; }
}
.fortis-hero-bg{ position:absolute; inset:0; z-index:0; }
.fortis-hero-bg img{ position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important; object-position:center !important; margin:0 !important; filter:saturate(.94) contrast(1.04) brightness(.99); animation:fortisHeroZoom 26s ease-in-out infinite alternate; will-change:transform; }
@keyframes fortisHeroZoom{ 0%{ transform:scale(1); } 100%{ transform:scale(1.1); } }
@media (prefers-reduced-motion:reduce){ .fortis-hero-bg img{ animation:none; } }
.fortis-hero-scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(12,11,9,.55) 0%, rgba(12,11,9,.5) 45%, rgba(12,11,9,.85) 100%); }
.fortis-hero-content{ position:relative; z-index:2; max-width:720px; }
.fortis-hero-title{ font-size:clamp(2.1rem,4.6vw,3.5rem); text-shadow:0 2px 20px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.6); }
.fortis-hero-content .lead{ font-size:1.15rem; color:var(--text) !important; opacity:.95; max-width:56ch; margin-bottom:32px; line-height:1.6; text-shadow:0 1px 10px rgba(0,0,0,.5); }
.fortis-hero-actions{ display:flex; gap:16px; flex-wrap:wrap; }

/* stats strip (sits directly under the hero) */
.fortis-stats-strip{ background:var(--bg); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:clamp(36px,4.6vw,56px) 6vw; }
.fortis-stats-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.6vw,20px); max-width:1360px; margin:0 auto; }
.fortis-stat{ padding:clamp(18px,3vw,36px) clamp(10px,1.6vw,24px); text-align:center; border:1px solid var(--line); border-radius:var(--r-md); display:flex; flex-direction:column; gap:8px; align-items:center; min-width:0; transition:border-color .4s var(--ease), background .4s var(--ease), transform .4s var(--ease); }
.fortis-stat:hover{ border-color:var(--sage); background:rgba(124,162,79,.08); transform:translateY(-5px); }
.fortis-stat-num{ font-family:var(--font-en-head); font-size:clamp(1.6rem,3.4vw,2.6rem); color:var(--sage) !important; line-height:1; }
.fortis-stat-label{ font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--text-faint) !important; overflow-wrap:break-word; }
@media (max-width:640px){ .fortis-stats-row{ grid-template-columns:repeat(2,1fr); gap:10px; } }
@media (max-width:420px){ .fortis-stat-label{ font-size:.66rem; } }

/* direction row */
.fortis-direction{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,72px); align-items:center; padding:56px 6vw; max-width:1360px; margin:0 auto; }
@media (max-width:560px){ .fortis-direction{ padding:32px 6vw; gap:22px; } }
.fortis-direction.reverse .fortis-direction-media{ order:2; }
.fortis-direction-media{ position:relative !important; border-radius:var(--r-lg); overflow:hidden !important; aspect-ratio:6/5 !important; width:100%; box-shadow:var(--shadow-lg); border:2px solid var(--sage) !important; }
.fortis-direction-media img{ position:absolute !important; top:0 !important; left:0 !important; right:0 !important; bottom:0 !important; width:100% !important; height:100% !important; max-width:100% !important; object-fit:cover !important; margin:0 !important; display:block; transition:transform 1.4s var(--ease); }
.fortis-direction-media::after{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(155deg, rgba(124,162,79,.14) 0%, rgba(12,11,9,.05) 40%, rgba(12,11,9,.32) 100%); }
.fortis-direction:hover .fortis-direction-media img{ transform:scale(1.06); }
.fortis-direction-title{ font-size:clamp(1.4rem,2.4vw,1.95rem); max-width:min(90%,420px); }
.fortis-direction-text p{ margin-bottom:28px; max-width:52ch; }
.fortis-direction-list{ list-style:none; display:grid; gap:10px; margin:0 0 26px; padding:0; }
.fortis-direction-list li{ position:relative; padding-left:1.3em; font-size:.98rem; line-height:1.55; color:var(--text-faint) !important; }
.fortis-direction-list li::before{ content:""; position:absolute; left:0; top:.78em; width:8px; height:1px; background:var(--sage); }
@media (max-width:820px){ .fortis-direction{ grid-template-columns:1fr; } .fortis-direction.reverse .fortis-direction-media{ order:0; } }

/* plain text block (service pages: the copy under a section heading) */
.fortis-text{ max-width:76ch; margin:0 auto; padding:0 6vw 56px; text-align:center; }
.fortis-text.left{ text-align:left; }
.fortis-w.fortis-text p{ font-size:1.03rem; line-height:1.75; }
.fortis-w.fortis-text p + p{ margin-top:1.1em; }

/* card grid (services / portfolio) */
.fortis-card-grid{ padding:24px 6vw 76px; max-width:1360px; margin:0 auto; }
@media (max-width:560px){ .fortis-card-grid{ padding:16px 6vw 44px; } }
.fortis-card-grid-inner{ display:grid; grid-template-columns:repeat(var(--cols,3),1fr); gap:clamp(14px,1.6vw,22px); }
.fortis-card{ position:relative !important; border-radius:var(--r-lg); overflow:hidden !important; aspect-ratio:4/3; display:block; box-shadow:var(--shadow-sm); transition:box-shadow .5s var(--ease), transform .5s var(--ease); border:1px solid transparent; min-height:220px; }
.fortis-card:hover{ box-shadow:var(--shadow-lg); transform:translateY(-4px); border-color:var(--sage) !important; }
.fortis-card img{ position:absolute !important; top:0 !important; left:0 !important; right:0 !important; bottom:0 !important; width:100% !important; height:100% !important; max-width:100% !important; object-fit:cover !important; margin:0 !important; transition:transform 1.4s var(--ease); filter:saturate(.94) contrast(1.04) brightness(.99); }
.fortis-card:hover img{ transform:scale(1.09); }
.fortis-card .scrim{ position:absolute !important; top:0 !important; left:0 !important; right:0 !important; bottom:0 !important; background:linear-gradient(180deg, rgba(12,11,9,0) 30%, rgba(12,11,9,.92) 100%); }
.fortis-card .label{ position:absolute !important; left:20px; right:20px; bottom:18px; font-size:1.05rem; font-weight:500; z-index:2; font-family:var(--font-ge-head); color:var(--text) !important; margin:0 !important; text-shadow:0 2px 10px rgba(0,0,0,.6); }
@media (max-width:900px){ .fortis-card-grid-inner{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .fortis-card-grid-inner{ grid-template-columns:1fr; } }

/* trust grid */
.fortis-trust-wrap{ padding:24px 6vw 76px; max-width:1360px; margin:0 auto; }
.fortis-trust-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,1.8vw,24px); background:rgba(255,255,255,.025); border:1px solid var(--line); border-radius:clamp(28px,3vw,48px); padding:clamp(28px,4.4vw,60px); }
.fortis-trust-item{ padding:clamp(20px,2.4vw,30px); border-radius:var(--r-md); border:1px solid var(--line); background:rgba(255,255,255,.02); display:flex; flex-direction:column; gap:16px; transition:border-color .4s var(--ease), transform .4s var(--ease), background .4s var(--ease); }
.fortis-trust-item:hover{ border-color:var(--sage) !important; background:rgba(124,162,79,.12); transform:translateY(-4px); }
.fortis-trust-ico{ width:46px; height:46px; border-radius:50%; border:1px solid var(--sage); display:flex; align-items:center; justify-content:center; color:var(--sage) !important; font-size:18px; transition:background .4s var(--ease), color .4s var(--ease); flex-shrink:0; }
.fortis-trust-ico i{ color:var(--sage) !important; }
.fortis-trust-ico svg{ width:18px !important; height:18px !important; fill:var(--sage) !important; color:var(--sage) !important; }
.fortis-trust-item:hover .fortis-trust-ico{ background:var(--sage); color:#0c0b09 !important; }
.fortis-trust-item:hover .fortis-trust-ico i{ color:#0c0b09 !important; }
.fortis-trust-item:hover .fortis-trust-ico svg{ fill:#0c0b09 !important; color:#0c0b09 !important; }
.fortis-trust-item p{ font-size:.92rem; color:var(--text-faint) !important; transition:color .4s var(--ease); line-height:1.5; }
.fortis-trust-item:hover p{ color:var(--text) !important; }
@media (max-width:820px){ .fortis-trust-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .fortis-trust-grid{ grid-template-columns:1fr; } }

/* banner */
.fortis-banner{ position:relative; min-height:clamp(300px,50vh,560px); display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; padding:70px 6vw; }
@media (max-width:560px){ .fortis-banner{ padding:44px 6vw; } }
.fortis-banner-bg{ position:absolute; inset:0; z-index:0; }
.fortis-banner-bg img{ position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important; object-position:center !important; margin:0 !important; filter:saturate(.94) contrast(1.04) brightness(.85); }
.fortis-banner-scrim{ position:absolute; inset:0; z-index:1; background:rgba(12,11,9,.72); }
.fortis-banner-content{ position:relative; z-index:2; max-width:640px; }
.fortis-banner-title{ font-size:clamp(1.7rem,3.3vw,2.4rem); text-shadow:0 2px 16px rgba(0,0,0,.5); }
.fortis-banner-content .fortis-eyebrow{ justify-content:center; }

/* featured (2x2) card variant */
.fortis-card.featured{ grid-column:span 2; grid-row:span 2; }
.fortis-card.featured .label{ font-size:1.3rem; }
@media (max-width:900px){ .fortis-card.featured{ grid-column:span 2; grid-row:span 1; aspect-ratio:16/10; } }
@media (max-width:560px){ .fortis-card.featured{ grid-column:span 1; aspect-ratio:4/3; } }

/* ---------- site header ---------- */
.fortis-site-header{ position:fixed; top:0; left:0; width:100%; z-index:100; background:rgba(12,11,9,.9); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); padding:16px 0; box-shadow:0 1px 0 var(--line); }
.fortis-header-inner{ max-width:1360px; margin:0 auto; padding:0 6vw; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.fortis-brand{ display:flex; align-items:center; gap:12px; flex-shrink:0; }
.fortis-header-actions{ flex-shrink:0; }
.fortis-brand-logo{ width:46px !important; height:46px !important; max-width:46px !important; object-fit:contain !important; display:block !important; overflow:visible !important; }
.fortis-brand-name{ font-family:var(--font-en-head); font-size:1.02rem; letter-spacing:.24em; color:var(--text) !important; }
.fortis-nav{ display:flex; align-items:center; gap:clamp(20px,3vw,42px); }
.fortis-nav a{ font-size:.88rem; color:var(--text) !important; position:relative; padding-bottom:4px; font-family:var(--font-ge-head); }
.fortis-nav a::after{ content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--sage); transition:width .4s var(--ease); }
.fortis-nav a:hover::after{ width:100%; }
.fortis-header-actions{ display:flex; align-items:center; gap:18px; }
a.fortis-header-phone.fortis-header-phone:link, a.fortis-header-phone.fortis-header-phone:visited, a.fortis-header-phone.fortis-header-phone{ font-size:.9rem; color:var(--text, #f4efe4) !important; position:relative; text-decoration:none !important; }
.fortis-header-phone::after{ content:""; position:absolute; left:0; bottom:-2px; width:0; height:1px; background:var(--sage); transition:width .35s var(--ease); }
.fortis-header-phone:hover::after{ width:100%; }
@media (max-width:900px){ .fortis-header-phone{ display:none; } }
@media (max-width:820px){ .fortis-nav{ display:none; } }
.fortis-lang-toggle{ display:flex; align-items:center; border:1px solid var(--line); border-radius:var(--r-pill); padding:4px; gap:2px; }
.fortis-lang-toggle a{ padding:5px 13px; border-radius:var(--r-pill); font-size:.74rem; letter-spacing:.06em; opacity:.6; color:var(--text) !important; transition:background .35s var(--ease), opacity .35s var(--ease); }
.fortis-lang-toggle a.active{ background:var(--sage); color:#0c0b09; opacity:1; }
@media (max-width:400px){
  .fortis-brand-logo{ width:38px !important; height:38px !important; max-width:38px !important; }
  button.fortis-hamburger.fortis-hamburger{ width:38px !important; height:38px !important; }
  .fortis-hamburger span{ width:23px; }
}

/* mobile hamburger + slide-over menu */
button.fortis-hamburger.fortis-hamburger{ display:none; flex-direction:column; align-items:center; justify-content:center; gap:7px; width:46px; height:46px; padding:0; margin:0; background:none !important; background-color:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; outline:none; cursor:pointer; flex-shrink:0; -webkit-appearance:none; appearance:none; -webkit-tap-highlight-color:transparent; }
.fortis-hamburger span{ display:block; width:28px; height:2px; border-radius:1px; background:var(--sage) !important; transition:transform .4s var(--ease), opacity .4s var(--ease); }
.fortis-hamburger[aria-expanded="true"] span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
.fortis-hamburger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.fortis-hamburger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }
.fortis-mobile-menu{ position:absolute; top:100%; left:0; right:0; z-index:150; background:rgba(12,11,9,.98); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); display:flex; flex-direction:column; align-items:flex-start; gap:0; max-height:0; opacity:0; overflow:hidden; transition:max-height .45s var(--ease), opacity .3s var(--ease); padding:0 6vw; border-bottom:0 solid var(--line); }
.fortis-mobile-menu.open{ max-height:600px; opacity:1; padding:10px 6vw 22px; border-bottom-width:1px; }
.fortis-mobile-menu nav{ display:flex; flex-direction:column; align-items:stretch; width:100%; }
.fortis-mobile-menu nav a{ font-size:1.05rem; color:var(--text) !important; font-family:var(--font-ge-head); text-align:left; padding:14px 0; border-bottom:1px solid var(--line); width:100%; }
.fortis-mobile-menu .fortis-header-phone{ font-size:1rem; margin-top:16px; }
.fortis-mobile-menu .fortis-lang-toggle{ margin-top:16px; }
@media (min-width:821px){ button.fortis-hamburger.fortis-hamburger, .fortis-mobile-menu{ display:none !important; } }
@media (max-width:820px){
  button.fortis-hamburger.fortis-hamburger{ display:flex; }
  .fortis-header-actions .fortis-lang-toggle, .fortis-header-actions .fortis-header-phone{ display:none; }
  .fortis-site-header{ background:transparent !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important; box-shadow:none !important; }
  .fortis-site-header:has(.fortis-mobile-menu.open){ background:rgba(12,11,9,.98) !important; backdrop-filter:blur(10px) !important; -webkit-backdrop-filter:blur(10px) !important; }
}

/* ---------- site footer ---------- */
.fortis-site-footer{ background:var(--bg-2); padding:60px 6vw 30px; }
@media (max-width:560px){ .fortis-site-footer{ padding:40px 6vw 24px; } }
.fortis-footer-inner{ max-width:1360px; margin:0 auto; }
.fortis-footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:clamp(30px,4vw,50px); padding-bottom:clamp(46px,6vw,70px); border-bottom:1px solid var(--line); }
@media (max-width:900px){ .fortis-footer-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .fortis-footer-top{ grid-template-columns:1fr; } }
.fortis-footer-brand .fortis-brand-logo{ margin-bottom:14px; }
.fortis-footer-brand p{ color:var(--text) !important; font-size:.9rem; max-width:32ch; margin-top:14px; line-height:1.6; }
.fortis-social-row{ display:flex; gap:12px; margin-top:20px; }
.fortis-social-row a{ width:38px; height:38px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--text) !important; transition:border-color .3s var(--ease), background .3s var(--ease); }
.fortis-social-row a:hover{ border-color:var(--sage) !important; background:rgba(124,162,79,.12); }
.fortis-social-row svg{ width:16px; height:16px; }
.fortis-footer-col h3{ font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--sage) !important; margin-bottom:18px; font-weight:500; }
.fortis-footer-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.fortis-footer-col a, .fortis-footer-col li{ font-size:.92rem; color:var(--text) !important; transition:color .3s var(--ease); }
.fortis-footer-col a:hover{ color:var(--sage) !important; }
.fortis-bottom-bar{ display:flex; justify-content:space-between; align-items:center; padding:24px 0 0; font-size:.8rem; color:var(--text-faint) !important; flex-wrap:wrap; gap:12px; }
a.fortis-back-top.fortis-back-top:link, a.fortis-back-top.fortis-back-top:visited, a.fortis-back-top.fortis-back-top{ width:42px; height:42px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--text, #f4efe4) !important; text-decoration:none !important; }

a.fortis-scroll-top.fortis-scroll-top:link, a.fortis-scroll-top.fortis-scroll-top:visited, a.fortis-scroll-top.fortis-scroll-top{ position:fixed !important; right:24px; bottom:24px; width:46px; height:46px; border-radius:50%; background:var(--bg-2, #141310) !important; border:1px solid var(--line-strong, rgba(250,246,239,.30)) !important; display:flex; align-items:center; justify-content:center; color:var(--text, #f4efe4) !important; font-size:1.1rem; z-index:200; opacity:0; visibility:hidden; transform:translateY(10px); transition:opacity .35s ease, transform .35s ease, visibility .35s, border-color .3s ease, background .3s ease, color .3s ease; text-decoration:none !important; box-shadow:0 10px 32px -18px rgba(0,0,0,.6); }
a.fortis-scroll-top.fortis-scroll-top.show, .fortis-scroll-top.show{ opacity:1 !important; visibility:visible !important; transform:translateY(0) !important; }
a.fortis-scroll-top.fortis-scroll-top:hover{ border-color:var(--sage, #7ca24f) !important; background:rgba(124,162,79,.16) !important; color:var(--sage, #7ca24f) !important; }

/* ---------- process ---------- */
.fortis-process-wrap{ padding:24px 6vw 76px; max-width:1360px; margin:0 auto; }
.fortis-process-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(20px,2.4vw,32px); }
.fortis-process-item{ padding:28px clamp(20px,2.4vw,28px) 30px; border:1px solid var(--line); border-radius:var(--r-md); background:rgba(255,255,255,.02); box-sizing:border-box; min-width:0; transition:border-color .4s var(--ease), background .4s var(--ease), transform .4s var(--ease); }
.fortis-process-item:hover{ border-color:var(--sage) !important; background:rgba(124,162,79,.08); transform:translateY(-4px); }
.fortis-pnum{ font-family:var(--font-en-head); font-size:.85rem; color:var(--sage) !important; margin-bottom:14px; display:block; }
.fortis-process-title{ font-size:1.05rem; margin-bottom:10px !important; overflow-wrap:break-word; }
.fortis-process-item p{ font-size:.88rem; line-height:1.55; overflow-wrap:break-word; }
@media (max-width:820px){ .fortis-process-row{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .fortis-process-row{ grid-template-columns:1fr; } }

/* ---------- secondary CTA (glow) ---------- */
.fortis-cta{ position:relative; overflow:hidden; text-align:center; padding:90px 6vw; }
@media (max-width:560px){ .fortis-cta{ padding:54px 6vw; } }
.fortis-orb{ position:absolute; border-radius:50%; filter:blur(10px); pointer-events:none; z-index:0; transition:transform 1.3s var(--ease), opacity 1.3s var(--ease); }
.fortis-orb-a{ width:640px; height:640px; top:-260px; left:-160px; background:radial-gradient(circle, rgba(124,162,79,.4), transparent 70%); }
.fortis-orb-b{ width:520px; height:520px; bottom:-220px; right:-140px; background:radial-gradient(circle, rgba(86,96,81,.4), transparent 70%); }
.fortis-cta:hover .fortis-orb-a{ transform:scale(1.18) translate(4%,4%); opacity:.85; }
.fortis-cta:hover .fortis-orb-b{ transform:scale(1.18) translate(-4%,-4%); opacity:.85; }
.fortis-cta-inner{ position:relative; z-index:1; max-width:640px; margin:0 auto; }
.fortis-cta-title{ font-size:clamp(1.7rem,3.3vw,2.4rem); }
.fortis-w p.fortis-cta-lead, .fortis-cta-lead{ margin-bottom:34px !important; font-size:1.02rem; }
.fortis-cta .fortis-btn.solid{ transition:background .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease), transform .35s var(--ease), box-shadow .35s var(--ease); }
.fortis-cta .fortis-btn.solid:hover{ transform:translateY(-4px) scale(1.05); box-shadow:0 16px 38px -10px rgba(124,162,79,.55); }

/* ---------- contact form ---------- */
.fortis-contact-section{ padding:20px 6vw 60px; max-width:1360px; margin:0 auto; }
.fortis-contact-grid{ display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(40px,6vw,90px); align-items:start; }
.fortis-contact-grid:not(.has-team){ align-items:stretch; }
.fortis-contact-grid:not(.has-team) .fortis-contact-info{ display:flex; flex-direction:column; }
@media (max-width:900px){ .fortis-contact-grid{ grid-template-columns:1fr; } }
.fortis-contact-title{ font-size:clamp(1.6rem,3vw,2.2rem); }
.fortis-contact-info p{ max-width:52ch; }
.fortis-contact-direct{ display:flex; flex-direction:column; gap:14px; margin-top:26px; }
.fortis-contact-direct a{ display:inline-flex; align-items:center; gap:10px; font-size:1rem; color:var(--text) !important; font-family:var(--font-en-head); transition:color .3s var(--ease); }
.fortis-contact-direct a svg{ width:18px; height:18px; stroke:var(--sage); }
.fortis-contact-direct a:hover{ color:var(--sage-hi) !important; }
.fortis-contact-photo{ position:relative; margin-top:30px; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:2px solid var(--sage); flex:1; min-height:280px; }
.fortis-contact-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05); transition:filter .5s var(--ease); }
.fortis-contact-photo:hover img{ filter:grayscale(.2) contrast(1.05); }
/* two-photo pair: frames are square so the (square) source photos sit in them exactly, with nothing cropped */
.fortis-contact-photo-pair{ flex:none; min-height:0; margin-top:30px; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.fortis-contact-photo-pair .fortis-contact-photo{ flex:none; min-height:0; margin-top:0; height:auto; aspect-ratio:1; }
@media (max-width:560px){ .fortis-contact-photo-pair{ grid-template-columns:1fr; } }

/* contact page on mobile: heading → short line → form → photos → full text → phone */
.fortis-contact-short{ display:none; }
@media (max-width:900px){
  .fortis-contact-grid:not(.has-team){ display:flex; flex-direction:column; gap:28px; }
  .fortis-contact-grid:not(.has-team) .fortis-contact-info{ display:contents; }
  .fortis-contact-grid:not(.has-team) .fortis-eyebrow{ order:1; }
  .fortis-contact-grid:not(.has-team) .fortis-contact-title{ order:2; margin-bottom:0 !important; }
  .fortis-contact-grid:not(.has-team) .fortis-contact-short{ display:block; order:3; }
  .fortis-contact-grid:not(.has-team) .fortis-contact-form{ order:4; }
  .fortis-contact-grid:not(.has-team) .fortis-contact-photo-pair,
  .fortis-contact-grid:not(.has-team) > .fortis-contact-info > .fortis-contact-photo{ order:5; margin-top:0; }
  .fortis-contact-grid:not(.has-team) .fortis-contact-lead{ order:6; }
  .fortis-contact-grid:not(.has-team) .fortis-contact-direct{ order:7; margin-top:0; }
}
.fortis-contact-intro{ max-width:680px; margin:0 auto 50px; text-align:center; }
.fortis-contact-intro .fortis-eyebrow{ justify-content:center; }
.fortis-contact-intro .fortis-eyebrow::before{ display:none; }
.fortis-contact-intro p{ max-width:60ch; margin:0 auto; }
.fortis-contact-direct.center{ align-items:center; }
.fortis-contact-grid.has-team{ align-items:start; }
.fortis-contact-team-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; align-content:start; }
.fortis-contact-team-photo{ position:relative; aspect-ratio:1; border-radius:var(--r-md); overflow:hidden; border:1.5px solid var(--sage); }
.fortis-contact-team-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05); transition:filter .4s var(--ease), transform .4s var(--ease); }
.fortis-contact-team-photo:hover img{ filter:grayscale(.1) contrast(1.05); transform:scale(1.06); }
@media (max-width:560px){ .fortis-contact-team-grid{ grid-template-columns:repeat(4,1fr); gap:8px; } }
.fortis-contact-form{ background:rgba(255,255,255,.03); border:1.5px solid var(--sage); border-radius:clamp(24px,3vw,40px); padding:clamp(26px,3.6vw,44px); box-shadow:var(--shadow-sm); transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease); }
.fortis-contact-form:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--sage-hi) !important; }
.fortis-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:560px){ .fortis-form-row{ grid-template-columns:1fr; } }
.fortis-field{ display:flex; flex-direction:column; gap:8px; margin-bottom:18px; }
.fortis-field label{ font-size:.8rem; letter-spacing:.03em; color:var(--text-faint) !important; }
.fortis-field input[type], .fortis-field textarea{ font:inherit; font-family:var(--font-en-body); padding:13px 16px; border-radius:var(--r-md) !important; border:1px solid var(--line-strong); background:rgba(255,255,255,.04); color:var(--text) !important; transition:border-color .3s var(--ease), box-shadow .3s var(--ease); overflow:hidden; box-sizing:border-box; width:100%; -webkit-appearance:none; appearance:none; }
.fortis-field input::placeholder, .fortis-field textarea::placeholder{ color:var(--text-faint) !important; }
.fortis-field input:focus, .fortis-field textarea:focus{ border-color:var(--sage) !important; box-shadow:0 0 0 3px rgba(124,162,79,.18); outline:none; }
.fortis-field textarea{ resize:vertical; min-height:100px; }

/* ---------- map embed ---------- */
.fortis-map-wrap{ max-width:1360px; margin:0 auto; padding:0 6vw 80px; }
.fortis-map-frame{ position:relative; width:100%; aspect-ratio:21/9; border-radius:var(--r-lg); overflow:hidden; border:2px solid var(--sage); box-shadow:var(--shadow-lg); filter:grayscale(.3) contrast(1.05) brightness(.95); transition:filter .5s var(--ease); }
.fortis-map-frame:hover{ filter:grayscale(0) contrast(1.05) brightness(1); }
.fortis-map-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; pointer-events:none; }
.fortis-map-overlay{ position:absolute; inset:0; z-index:2; cursor:pointer; }
@media (max-width:820px){ .fortis-map-frame{ aspect-ratio:4/3; } }
