219 lines
8.1 KiB
Python
219 lines
8.1 KiB
Python
import re
|
|
|
|
with open("tmp_home_current_block3.html", "r", encoding="utf-8") as f:
|
|
content = f.read()
|
|
|
|
# Isolate and remove the old HTML section
|
|
html_pattern = re.compile(r'<!-- KMC THIRD SECTION START -->.*?<!-- KMC THIRD SECTION END -->', re.DOTALL)
|
|
|
|
# Remove old inline CSS block
|
|
css_pattern = re.compile(r'/\* KMC THIRD SECTION START \*/.*?/\* KMC THIRD SECTION END \*/', re.DOTALL)
|
|
|
|
# Remove patches
|
|
patch1 = re.compile(r'<style id="kmc-credentials-icon-size-v1">.*?</style>\s*', re.DOTALL)
|
|
patch2 = re.compile(r'<style id="kmc-credentials-tags-row-v1">.*?</style>\s*', re.DOTALL)
|
|
patch3 = re.compile(r'<style id="kmc-third-harmony-v2">.*?</style>\s*', re.DOTALL)
|
|
patch4 = re.compile(r'<style id="kmc-credentials-icon-boost-v3">.*?</style>\s*', re.DOTALL)
|
|
patch5 = re.compile(r'<style id="kmc-credentials-tag-height-v2">.*?</style>\s*', re.DOTALL)
|
|
|
|
new_block = """<!-- KMC SPECIALTY SECTION START -->
|
|
<style>
|
|
.kmc-specialty-section {
|
|
background: #F0EEE9;
|
|
padding: 110px 0;
|
|
}
|
|
.kmc-specialty-wrap {
|
|
width: min(1360px, calc(100% - 64px));
|
|
margin: 0 auto;
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 48px;
|
|
}
|
|
.kmc-specialty-card {
|
|
background: #FFFFFF;
|
|
border-radius: 32px;
|
|
padding: 56px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
box-shadow: 0 16px 40px rgba(0,0,0,0.02);
|
|
}
|
|
.kmc-specialty-heading {
|
|
margin: 0 0 40px;
|
|
font-family: 'Cardo', serif;
|
|
font-weight: 700;
|
|
font-size: 44px;
|
|
line-height: 1.1;
|
|
color: #1C3434;
|
|
}
|
|
.kmc-specialty-list {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 36px;
|
|
}
|
|
.kmc-specialty-item {
|
|
display: grid;
|
|
grid-template-columns: 44px minmax(0, 1fr);
|
|
gap: 20px;
|
|
align-items: start;
|
|
}
|
|
.kmc-specialty-icon {
|
|
width: 44px;
|
|
height: 44px;
|
|
border-radius: 50%;
|
|
background: #90F1AE;
|
|
color: #1C3434;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.kmc-specialty-icon svg {
|
|
width: 24px;
|
|
height: 24px;
|
|
display: block;
|
|
stroke-width: 1.8;
|
|
}
|
|
.kmc-specialty-item-title {
|
|
margin: 0 0 12px;
|
|
font-family: 'Inter', sans-serif;
|
|
font-weight: 700;
|
|
font-size: 22px;
|
|
line-height: 1.3;
|
|
color: #1C3434;
|
|
}
|
|
.kmc-specialty-item-text {
|
|
margin: 0;
|
|
font-family: 'Inter', sans-serif;
|
|
font-weight: 400;
|
|
font-size: 18px;
|
|
line-height: 1.5;
|
|
color: rgba(1, 1, 1, 0.8);
|
|
}
|
|
|
|
.kmc-specialty-tags {
|
|
margin-top: auto;
|
|
padding-top: 48px;
|
|
display: flex;
|
|
gap: 16px;
|
|
flex-wrap: wrap;
|
|
}
|
|
.kmc-specialty-tag {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 10px 24px;
|
|
border: 1px solid #1C3434;
|
|
border-radius: 999px;
|
|
color: #1C3434;
|
|
font-family: 'Inter', sans-serif;
|
|
font-weight: 400;
|
|
font-size: 16px;
|
|
line-height: 1;
|
|
}
|
|
|
|
@media (max-width: 1024px) {
|
|
.kmc-specialty-section { padding: 80px 0; }
|
|
.kmc-specialty-wrap {
|
|
grid-template-columns: 1fr;
|
|
gap: 32px;
|
|
width: calc(100% - 48px);
|
|
}
|
|
.kmc-specialty-card { padding: 40px; }
|
|
}
|
|
@media (max-width: 680px) {
|
|
.kmc-specialty-section { padding: 60px 0; }
|
|
.kmc-specialty-wrap { width: calc(100% - 32px); gap: 24px; }
|
|
.kmc-specialty-card { padding: 32px 24px; border-radius: 24px; }
|
|
.kmc-specialty-heading { font-size: 34px; margin-bottom: 32px; }
|
|
.kmc-specialty-item { grid-template-columns: 36px minmax(0, 1fr); gap: 16px; }
|
|
.kmc-specialty-icon { width: 36px; height: 36px; }
|
|
.kmc-specialty-icon svg { width: 18px; height: 18px; }
|
|
.kmc-specialty-item-title { font-size: 18px; margin-bottom: 8px; }
|
|
.kmc-specialty-item-text { font-size: 15px; }
|
|
.kmc-specialty-tags { padding-top: 36px; gap: 10px; }
|
|
.kmc-specialty-tag { font-size: 14px; padding: 8px 16px; }
|
|
}
|
|
</style>
|
|
|
|
<section class="kmc-specialty-section" aria-labelledby="kmc-specialty-title">
|
|
<div class="kmc-specialty-wrap">
|
|
|
|
<article class="kmc-specialty-card">
|
|
<h3 id="kmc-specialty-title" class="kmc-specialty-heading">Specialty</h3>
|
|
<ul class="kmc-specialty-list">
|
|
<li class="kmc-specialty-item">
|
|
<span class="kmc-specialty-icon" aria-hidden="true">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>
|
|
</span>
|
|
<div>
|
|
<h4 class="kmc-specialty-item-title">VC & PE Partnership</h4>
|
|
<p class="kmc-specialty-item-text">I coach portfolio founders and CEOs to drive exponential valuation growth by transforming “impossible” ambitions into measurable professional outcomes.</p>
|
|
</div>
|
|
</li>
|
|
<li class="kmc-specialty-item">
|
|
<span class="kmc-specialty-icon" aria-hidden="true">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M12 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z"/><path d="M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2"/><path d="M12 15l-3 3h6l-3 3"/></svg>
|
|
</span>
|
|
<div>
|
|
<h4 class="kmc-specialty-item-title">Leadership Alignment</h4>
|
|
<p class="kmc-specialty-item-text">Following CEO transformation, I align senior leadership teams to ensure the entire organization moves with singular, high-velocity purpose toward a transformed future.</p>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</article>
|
|
|
|
<article class="kmc-specialty-card" aria-labelledby="kmc-credentials-title">
|
|
<h3 id="kmc-credentials-title" class="kmc-specialty-heading">Credentials</h3>
|
|
<ul class="kmc-specialty-list">
|
|
<li class="kmc-specialty-item">
|
|
<span class="kmc-specialty-icon" aria-hidden="true">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="8" r="7"></circle><polyline points="8.21 13.89 7 23 12 20 17 23 15.79 13.88"></polyline></svg>
|
|
</span>
|
|
<div>
|
|
<h4 class="kmc-specialty-item-title">Certified</h4>
|
|
<p class="kmc-specialty-item-text">ICF PCC Certified Executive and Life Coach</p>
|
|
</div>
|
|
</li>
|
|
<li class="kmc-specialty-item">
|
|
<span class="kmc-specialty-icon" aria-hidden="true">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z"></path></svg>
|
|
</span>
|
|
<div>
|
|
<h4 class="kmc-specialty-item-title">Trained</h4>
|
|
<p class="kmc-specialty-item-text">Trained in Adaptive Leadership Styles and Personal and Professional Transformations</p>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
<div class="kmc-specialty-tags" aria-label="Coaching attributes">
|
|
<span class="kmc-specialty-tag">Confidential</span>
|
|
<span class="kmc-specialty-tag">Insightful</span>
|
|
<span class="kmc-specialty-tag">Practical</span>
|
|
</div>
|
|
</article>
|
|
|
|
</div>
|
|
</section>
|
|
<!-- KMC SPECIALTY SECTION END -->"""
|
|
|
|
content = html_pattern.sub(new_block, content)
|
|
content = css_pattern.sub('', content)
|
|
content = patch1.sub('', content)
|
|
content = patch2.sub('', content)
|
|
content = patch3.sub('', content)
|
|
content = patch4.sub('', content)
|
|
content = patch5.sub('', content)
|
|
|
|
# Remove scale leftovers from .kmc-third
|
|
content = re.sub(r'\.kmc-third \.kmc-container,\s*', '', content)
|
|
content = re.sub(r'\.kmc-third,\s*', '', content)
|
|
content = re.sub(r'\.kmc-third-grid,\s*', '', content)
|
|
content = re.sub(r'\.kmc-third h3 \{[^\}]*\}\s*', '', content)
|
|
content = re.sub(r'\.kmc-third-card \{[^\}]*\}\s*', '', content)
|
|
content = re.sub(r'\.kmc-third-item-title \{[^\}]*\}\s*', '', content)
|
|
content = re.sub(r'\.kmc-third-item p \{[^\}]*\}\s*', '', content)
|
|
|
|
with open("tmp_home_updated_block3.html", "w", encoding="utf-8") as f:
|
|
f.write(content)
|