:root { --est-text: #111322;
--est-muted: #414458;
--est-muted-light: #5A607B; --est-primary: #EB238C;
--est-primary-hover: #D00A72;
--est-bg-light: #F7F7F7; --est-line: rgba(17, 19, 34, 0.12);
--est-grad: linear-gradient(135deg, #F5F7FF 0%, #FFFFFF 45%, #FFE8F5 100%);
--est-shadow: 0 10px 25px rgba(15, 23, 42, 0.06);
--est-shadow-lg: 0 20px 50px rgba(0, 0, 0, 0.3); --font-heading: "Poppins", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
--font-body: "Raleway", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
} .est-summary--banner {
padding: 48px !important;
margin: 40px 0;
position: relative;
overflow: hidden;
background: var(--est-grad); border: 1px solid var(--est-line);
}
.est-banner-grid {
display: grid;
grid-template-columns: 1fr 300px;
gap: 40px;
align-items: center;
}
.est-banner-title {
text-align: left !important; margin-bottom: 20px !important;
font-size: 32px !important;
color: var(--est-text) !important;
}
.est-banner-list {
list-style: none;
padding: 0 !important;
margin: 24px 0 !important;
display: grid;
grid-template-columns: 1fr;
gap: 12px;
}
.est-banner-list li {
font-family: var(--font-body);
font-weight: 600; color: var(--est-text);
display: flex;
text-align: left;
gap: 10px;
margin-bottom: 0 !important;
}
.est-banner-list li span {
color: var(--est-primary); font-weight: 800;
}
.est-banner-visual {
display: flex;
justify-content: center;
align-items: center;
} .est-summary--banner .est-calc-logo img {
max-width: 240px;
filter: drop-shadow(var(--est-shadow));
} @media (max-width: 991px) {
.est-banner-grid {
grid-template-columns: 1fr;
text-align: center;
}
.est-banner-title {
text-align: center !important;
}
.est-banner-list {
justify-items: start;
max-width: 400px;
margin: 24px auto !important;
}
.est-banner-visual {
order: -1; margin-bottom: 20px;
}
} .est-btn,
.est-btn:visited {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 14px 28px;
border-radius: 8px;
background: var(--est-primary);
color: #fff !important;
text-decoration: none;
font-family: var(--font-heading);
font-weight: 600;
font-size: 16px;
border: none;
cursor: pointer;
box-shadow: 0 10px 25px rgba(235, 35, 140, 0.35);
transition: all 0.18s ease;
text-transform: none;
letter-spacing: normal;
line-height: 1.5;
}
.est-btn:hover,
.est-btn:focus {
background: var(--est-primary-hover);
transform: translateY(-1px);
box-shadow: 0 14px 30px rgba(208, 10, 114, 0.45);
color: #fff !important;
text-decoration: none;
outline: none;
}
.est-btn:active {
color: #fff !important;
} .est-btn--wide {
width: 100%;
font-size: 18px;
font-weight: 700;
padding: 16px;
} .est-btn--sm,
.est-btn--sm:visited {
padding: 10px 20px;
font-size: 14px;
box-shadow: 0 6px 20px rgba(235, 35, 140, 0.25);
white-space: nowrap;
}
.est-btn--sm:hover {
box-shadow: 0 10px 25px rgba(208, 10, 114, 0.35);
} .est-btn--modal,
.est-btn--modal:visited,
.est-btn--modal:link {
padding: 14px 30px !important;
font-weight: 700 !important;
display: inline-block !important;
margin: 0 auto !important;
}  .est-badge {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 6px 14px;
border-radius: 999px;
background: rgba(235, 35, 140, 0.08);
color: var(--est-text);
font-size: 14px;
line-height: 1.4;
font-weight: 500;
margin-bottom: 18px;
} .est-badge--outlined {
border: 1px solid rgba(235, 35, 140, 0.18);
font-weight: 600;
} .est-chips {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 28px;
}  .est-hero {
padding: 80px 20px 48px;
font-family: var(--font-body);
color: var(--est-text);
box-sizing: border-box;
width: 100%;
margin-top: 56px;
}
.est-hero *,
.est-hero *::before,
.est-hero *::after {
box-sizing: border-box;
} .est-hero-inner {
max-width: 1120px;
margin: 0 auto;
display: flex;
align-items: center;
gap: 48px;
} .est-hero-inner--grid {
max-width: 1120px;
margin: 0 auto;
display: grid;
grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
gap: 40px;
align-items: center;
} .est-hero-content {
flex: 1;
text-align: left;
} .est-hero h1 {
font-family: var(--font-heading);
font-size: 48px;
line-height: 1.1;
margin: 0 0 18px;
letter-spacing: -0.02em;
color: var(--est-text);
} .est-hero-subtext {
font-size: 18px;
line-height: 1.7;
color: var(--est-muted);
margin-bottom: 28px;
max-width: 560px;
} .est-hero-actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
align-items: center;
margin-bottom: 32px;
} .est-hero-image {
flex: 0 0 360px;
max-width: 360px;
} .est-hero-image--sm {
flex: 0 0 420px;
max-width: 420px;
}
.est-hero-image img,
.est-hero-image--sm img {
width: 100%;
height: auto;
display: block;
border-radius: 16px;
box-shadow: var(--est-shadow);
} .est-hero-image-wrap {
text-align: right;
}
.est-hero-image-wrap img {
max-width: 100%;
width: 100%;
height: auto;
display: inline-block;
border-radius: 12px;
box-shadow: var(--est-shadow);
}
.est-hero--slim {
padding-top: 48px;
padding-bottom: 12px;
} .est-section {
max-width: 1120px;
margin: 0 auto;
padding: 40px 20px;
font-family: var(--font-body);
color: var(--est-text);
}
.est-section h2 {
font-family: var(--font-heading);
font-size: 32px;
line-height: 1.2;
margin: 0 0 16px;
letter-spacing: -0.01em;
color: var(--est-text);
}
.est-section h3 {
font-family: var(--font-heading);
font-size: 22px;
line-height: 1.3;
margin: 26px 0 10px;
color: var(--est-text);
}
.est-section p {
font-size: 18px;
line-height: 1.7;
color: var(--est-muted);
margin: 0 0 14px;
}
.est-section ul {
margin: 0 0 14px;
padding-left: 20px;
font-size: 18px;
line-height: 1.7;
color: var(--est-muted);
}
.est-section li {
margin-bottom: 8px;
}
.est-section a {
color: var(--est-primary);
text-decoration: none;
font-weight: 600;
}
.est-section a:hover {
text-decoration: underline;
}
.est-section strong {
color: var(--est-text);
font-weight: 700;
} .est-disclaimer {
font-size: 14px;
color: var(--est-muted-light);
font-style: italic;
margin: -8px 0 18px;
} .est-section-subtitle {
margin: 0 0 32px;
font-size: 18px;
line-height: 1.7;
color: var(--est-muted);
} .est-sources {
margin-top: 40px;
padding-top: 32px;
border-top: 2px solid var(--est-line);
}
.est-sources h3 {
font-family: var(--font-heading);
font-size: 20px;
margin: 0 0 16px;
color: var(--est-text);
}
.est-sources p {
font-size: 15px;
line-height: 1.7;
color: var(--est-muted-light);
} .est-caption {
margin-top: 12px;
font-size: 14px;
color: var(--est-muted-light);
text-align: center;
line-height: 1.6;
}
.est-caption a {
color: var(--est-primary);
text-decoration: none;
}
.est-caption a:hover {
text-decoration: underline;
}  .est-map-section {
max-width: 1120px;
margin: 0 auto;
padding: 40px 20px;
font-family: var(--font-body);
color: var(--est-text);
}
.est-map-subtitle {
color: var(--est-muted);
text-align: center;
margin-bottom: 20px;
font-size: 16px;
line-height: 1.6;
} #est-map {
height: 70vh;
width: 100%;
max-width: 900px;
margin: 5px auto 40px;
border: 1px solid var(--est-line);
box-shadow: var(--est-shadow);
border-radius: 12px;
z-index: 1;
} .leaflet-popup-content-wrapper {
border-radius: 12px !important;
padding: 0 !important;
}
.leaflet-popup-content {
margin: 0 !important;
width: 360px;
} .est-popup-body {
padding: 20px;
text-align: center;
}
.est-popup-body h3 {
font-family: var(--font-heading);
margin: 0 0 8px;
font-size: 20px;
color: var(--est-muted);
} .est-popup-date {
font-size: 14px;
color: #666;
margin-bottom: 16px;
} .est-popup-footer {
padding: 0 20px 20px;
text-align: center;
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px;
} .leaflet-tooltip {
background-color: white !important;
border: 1px solid var(--est-line) !important;
color: var(--est-text) !important;
padding: 6px 12px !important;
border-radius: 6px !important;
font-weight: 600 !important;
font-size: 14px !important;
opacity: 0.95 !important;
box-shadow: var(--est-shadow);
font-family: var(--font-heading);
} .est-data-section {
max-width: 1120px;
margin: 0 auto;
padding: 40px 20px;
display: flex;
align-items: flex-start;
gap: 48px;
font-family: var(--font-body);
}
.est-data-text {
flex: 1 1 40%;
}
.est-data-text h2 {
font-family: var(--font-heading);
font-size: 28px;
line-height: 1.2;
margin: 0 0 16px;
color: var(--est-text);
}
.est-data-text p {
font-size: 18px;
line-height: 1.7;
color: var(--est-muted);
margin: 0 0 14px;
}
.est-data-table-col {
flex: 1 1 55%;
}
.est-data-table-col h2 {
font-family: var(--font-heading);
font-size: 24px;
margin: 0 0 8px;
color: var(--est-text);
} .est-table-subtitle {
font-size: 15px;
color: #666;
margin-bottom: 16px;
}  .est-table {
width: 100%;
border-collapse: collapse;
box-shadow: var(--est-shadow);
border-radius: 8px;
overflow: hidden;
font-family: var(--font-body);
}
.est-table th,
.est-table td {
padding: 12px 16px;
border: 1px solid var(--est-line);
text-align: left;
}
.est-table th {
background: var(--est-bg-light);
color: var(--est-text);
font-weight: 600;
font-family: var(--font-heading);
}
.est-table td:first-child {
color: var(--est-muted);
font-weight: 600;
font-family: var(--font-heading);
}
.est-table td:not(:first-child) {
color: var(--est-text);
font-weight: 500;
} .est-table--modern {
width: 100%;
border-collapse: separate;
border-spacing: 0;
background: #fff;
border: 1px solid var(--est-line);
border-radius: 12px;
overflow: hidden;
box-shadow: var(--est-shadow);
font-size: 16px;
font-family: var(--font-body);
}
.est-table--modern th,
.est-table--modern td {
padding: 14px;
border-bottom: 1px solid var(--est-line);
border-right: 1px solid var(--est-line);
text-align: left;
}
.est-table--modern th {
background: rgba(235, 35, 140, 0.08);
color: var(--est-text);
font-family: var(--font-heading);
font-weight: 700;
font-size: 14px;
text-transform: uppercase;
}
.est-table--modern td {
color: var(--est-text);
font-weight: 600;
}
.est-table--modern th:last-child,
.est-table--modern td:last-child {
border-right: none;
}
.est-table--modern tr:last-child td {
border-bottom: none;
} .est-price-table {
width: 100%;
border-collapse: collapse;
margin-bottom: 16px;
}
.est-price-table th,
.est-price-table td {
padding: 10px;
border: 1px solid var(--est-line);
text-align: center;
font-size: 14px;
}
.est-price-table th {
background: var(--est-bg-light);
color: #555;
font-weight: 600;
font-family: var(--font-heading);
}
.est-price-table td strong {
display: block;
color: var(--est-muted);
font-weight: 600;
font-family: var(--font-heading);
} .est-table-wrapper {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
margin-bottom: 16px;
}
.est-comparison-table {
width: 100%;
min-width: 800px;
border-collapse: separate;
border-spacing: 0;
background: #fff;
border: 1px solid var(--est-line);
border-radius: 12px;
overflow: hidden;
box-shadow: var(--est-shadow);
font-size: 15px;
line-height: 1.6;
color: var(--est-muted);
}
.est-comparison-table th,
.est-comparison-table td {
padding: 16px 14px;
vertical-align: top;
border-bottom: 1px solid var(--est-line);
border-right: 1px solid var(--est-line);
background: #fff;
text-align: left;
}
.est-comparison-table th:last-child,
.est-comparison-table td:last-child {
border-right: none;
}
.est-comparison-table tr:last-child td {
border-bottom: none;
}
.est-comparison-table thead th {
background: rgba(235, 35, 140, 0.08);
color: var(--est-text);
font-family: var(--font-heading);
font-weight: 600;
font-size: 15px;
text-align: center;
padding: 20px 14px;
}
.est-comparison-table thead th:first-child {
background: #fff;
text-align: left;
width: 24%;
min-width: 200px;
}
.est-comparison-table tbody td:first-child {
font-weight: 600;
color: var(--est-text);
width: 24%;
min-width: 200px;
background: rgba(17, 19, 34, 0.04);
}
.est-comparison-table thead a {
color: var(--est-text);
text-decoration: none;
}
.est-comparison-table thead a:hover {
color: var(--est-primary-hover);
} .est-provider-logo {
display: block;
margin: 0 auto 8px;
max-width: 140px;
height: auto;
}
.est-provider-name {
display: block;
font-size: 15px;
color: var(--est-text);
font-weight: 600;
} .est-star-rating {
font-family: var(--font-heading);
font-weight: 700;
color: var(--est-primary);
white-space: nowrap;
font-size: 16px;
} .est-calc-section {
max-width: 1120px;
margin: 0 auto;
padding: 60px 20px;
font-family: var(--font-body);
}
.est-calc-card {
background: #fff;
border: 1px solid var(--est-line);
border-radius: 16px;
padding: 40px;
box-shadow: var(--est-shadow);
text-align: center;
}
.est-calc-card h2 {
font-family: var(--font-heading);
font-size: 32px;
line-height: 1.2;
margin: 0 0 12px;
color: var(--est-text);
}
.est-calc-card h3 {
font-family: var(--font-heading);
font-size: 22px;
line-height: 1.3;
margin: 0 0 16px;
color: var(--est-muted);
}
.est-calc-card p {
font-size: 18px;
line-height: 1.7;
color: var(--est-muted);
margin: 0 auto 24px;
max-width: 700px;
} .est-calc-logo {
margin: 20px 0;
}
.est-calc-logo img {
max-width: 200px;
height: auto;
display: block;
margin: 0 auto;
}  .est-form-wrapper {
background: #fff;
border: 1px solid var(--est-line);
border-radius: 16px;
padding: 32px;
width: 100%;
max-width: 600px;
margin: 0 auto;
box-shadow: var(--est-shadow);
font-family: var(--font-body);
} .est-form-title {
font-family: var(--font-heading);
font-size: 24px;
font-weight: 700;
margin: 0 0 24px;
text-align: center;
color: var(--est-text);
} .est-form-label {
display: block;
font-family: var(--font-heading);
font-size: 14px;
font-weight: 600;
margin-bottom: 10px;
color: var(--est-text);
} .est-layout-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
margin-bottom: 24px;
} .est-layout-option {
position: relative;
margin: 0;
} .est-layout-option input[type="radio"] {
position: absolute;
opacity: 0;
cursor: pointer;
height: 0;
width: 0;
} .est-layout-card {
display: flex;
align-items: center;
justify-content: center;
text-align: center;
padding: 12px 5px;
background: var(--est-bg-light);
border: 1px solid var(--est-line);
border-radius: 8px;
font-size: 14px;
font-weight: 600;
color: var(--est-muted);
cursor: pointer;
transition: all 0.2s ease;
font-family: var(--font-body);
}
.est-layout-card:hover {
border-color: var(--est-primary);
color: var(--est-primary);
} .est-layout-option input[type="radio"]:checked+.est-layout-card {
background: var(--est-primary);
color: #fff;
border-color: var(--est-primary);
box-shadow: 0 4px 12px rgba(235, 35, 140, 0.25);
} .est-form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
margin-bottom: 24px;
}
.est-input-group {
display: flex;
flex-direction: column;
} .est-input {
padding: 14px 16px;
border: 1px solid var(--est-line);
border-radius: 8px;
font-size: 16px;
font-family: var(--font-body);
color: var(--est-text);
outline: none;
background: #fff;
width: 100%;
box-sizing: border-box;
height: 52px;
}
.est-input:focus {
border-color: var(--est-primary);
box-shadow: 0 0 0 3px rgba(235, 35, 140, 0.1);
} select.est-input {
appearance: none;
cursor: pointer;
background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23111322%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");
background-repeat: no-repeat;
background-position: right 1rem center;
background-size: 10px;
} .est-error-msg {
color: #D32F2F;
font-size: 13px;
margin-top: 6px;
display: none;
text-align: left;
} .est-content-section {
max-width: 1120px;
margin: 0 auto;
padding: 40px 20px;
font-family: var(--font-body);
}
.est-content-section h2 {
font-family: var(--font-heading);
font-size: 32px;
line-height: 1.2;
margin: 0 0 24px;
color: var(--est-text);
}
.est-content-section p {
font-size: 18px;
line-height: 1.8;
color: var(--est-muted);
margin: 0 0 16px;
}
.est-content-section a {
color: var(--est-primary);
text-decoration: none;
font-weight: 600;
}
.est-content-section a:hover {
text-decoration: underline;
} .est-steps {
margin: 32px 0;
}
.est-step {
background: #fff;
border: 1px solid var(--est-line);
border-radius: 14px;
padding: 24px;
margin-bottom: 20px;
box-shadow: var(--est-shadow);
position: relative;
}
.est-step-number {
display: inline-flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
border-radius: 50%;
background: var(--est-primary);
color: #fff;
font-family: var(--font-heading);
font-weight: 700;
font-size: 20px;
margin-bottom: 12px;
}
.est-step h3 {
font-family: var(--font-heading);
font-size: 20px;
margin: 0 0 10px;
color: var(--est-text);
}
.est-step p {
font-size: 16px;
line-height: 1.7;
color: var(--est-muted);
margin: 0 0 12px;
}
.est-step ul {
margin: 0 0 12px;
padding-left: 20px;
font-size: 16px;
line-height: 1.7;
color: var(--est-muted);
}
.est-step li {
margin-bottom: 6px;
}
.est-step p:last-child,
.est-step ul:last-child {
margin-bottom: 0;
} .est-step-tip {
background: rgba(235, 35, 140, 0.08);
border-left: 3px solid var(--est-primary);
padding: 12px 16px;
border-radius: 8px;
margin-top: 12px;
}
.est-step-tip strong {
color: var(--est-primary);
} .est-summary {
background: var(--est-grad);
border: 1px solid rgba(17, 19, 34, 0.08);
border-radius: 16px;
padding: 28px;
box-shadow: var(--est-shadow);
margin: 32px 0;
}
.est-summary h2 {
font-family: var(--font-heading);
font-size: 26px;
margin: 0 0 16px;
text-align: center;
color: var(--est-text);
}
.est-summary h3 {
font-family: var(--font-heading);
font-size: 24px;
margin: 0 0 10px;
color: var(--est-text);
}
.est-summary p {
font-size: 18px;
color: var(--est-muted);
margin: 0 0 18px;
}
.est-summary ul {
margin: 0;
padding-left: 24px;
font-size: 18px;
line-height: 1.8;
color: var(--est-text);
}
.est-summary li {
margin-bottom: 10px;
font-weight: 600;
}
.est-summary li:last-child {
margin-bottom: 0;
} .est-summary--center {
text-align: center;
padding: 32px;
}
.est-summary--center .est-calc-logo {
margin: 0 auto 18px;
display: block;
} .est-features-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 20px;
margin: 32px 0;
}
.est-feature-card {
background: #fff;
border: 1px solid var(--est-line);
border-radius: 14px;
padding: 22px;
box-shadow: var(--est-shadow);
text-align: center;
}
.est-feature-card img {
width: 80px;
height: 80px;
margin: 0 auto 14px;
display: block;
}
.est-feature-card h3 {
font-family: var(--font-heading);
font-size: 18px;
margin: 0 0 8px;
color: var(--est-text);
}
.est-feature-card p {
font-size: 16px;
color: var(--est-muted);
margin: 0;
} .est-definitions {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 18px;
margin: 32px 0;
}
.est-def-card {
background: #fff;
border: 1px solid var(--est-line);
border-radius: 14px;
padding: 20px;
box-shadow: var(--est-shadow);
}
.est-def-card h3 {
font-family: var(--font-heading);
font-size: 20px;
margin: 0 0 10px;
color: var(--est-primary);
}
.est-def-card p {
font-size: 16px;
line-height: 1.6;
color: var(--est-muted);
margin: 0;
} .est-cities {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin: 18px 0;
}
.est-city-link,
.est-city-link:visited {
display: inline-flex;
padding: 10px 18px;
background: rgba(235, 35, 140, 0.08);
border: 1px solid rgba(235, 35, 140, 0.18);
border-radius: 8px;
color: var(--est-text);
text-decoration: none;
font-weight: 600;
font-size: 15px;
transition: all 0.18s ease;
}
.est-city-link:hover {
background: var(--est-primary);
color: #fff;
} .est-cta-panel {
background: var(--est-grad);
border: 1px solid rgba(17, 19, 34, 0.08);
border-radius: 16px;
padding: 32px;
box-shadow: var(--est-shadow);
margin: 32px 0;
text-align: center;
}
.est-cta-panel h3 {
font-family: var(--font-heading);
font-size: 24px;
margin: 0 0 10px;
color: var(--est-text);
}
.est-cta-panel p {
font-size: 18px;
color: var(--est-muted);
margin: 0 0 18px;
} .est-toc-wrapper {
max-width: 1120px;
margin: 12px auto 0;
padding: 0 20px;
display: flex;
justify-content: flex-start;
}
.est-toc {
display: block;
width: 100%;
max-width: 420px;
border: 1px solid #e0e0e0;
border-radius: 12px;
background: #fff;
box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
overflow: hidden;
}
.est-toc-header {
width: 100%;
padding: 14px 18px;
background: #fff;
border: none;
display: flex;
justify-content: space-between;
align-items: center;
cursor: pointer;
font-size: 18px;
font-weight: 600;
color: var(--est-text);
font-family: var(--font-body);
}
.est-toc-arrow {
display: inline-block;
width: 0;
height: 0;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 8px solid #333;
transition: transform 0.2s ease;
}
.est-toc-content {
display: none;
padding: 8px 14px 18px;
border-top: 1px solid #e0e0e0;
background: #fff;
}
.est-toc-list,
.est-toc-sublist {
list-style: none;
margin: 0;
padding: 0;
}
.est-toc-list>li {
margin: 8px 0;
}
.est-toc-list>li>a {
display: block;
padding: 10px 14px;
background-color: #f1f3f9;
color: var(--est-text) !important;
border-radius: 8px;
font-weight: 600;
text-decoration: none;
transition: all 0.2s ease;
}
.est-toc-list>li>a:hover,
.est-toc-list>li>a:focus {
background-color: var(--est-primary);
color: #fff !important;
}
.est-toc-sublist {
margin: 4px 0 10px 14px;
border-left: 2px solid #f1f3f9;
}
.est-toc-sublist li {
padding: 4px 14px;
font-size: 14px;
color: var(--est-muted-light);
}
.est-toc-sublist a {
color: var(--est-muted-light) !important;
text-decoration: none;
transition: color 0.2s ease;
}
.est-toc-sublist a:hover {
color: var(--est-primary) !important;
} .est-toc.open .est-toc-content {
display: block;
}
.est-toc.open .est-toc-arrow {
transform: rotate(180deg);
} .est-faq-wrapper {
background: var(--est-grad);
padding: 60px 20px;
}
.est-faq {
max-width: 1000px;
margin: 0 auto;
}
.est-faq h2 {
font-family: var(--font-heading);
font-size: 32px;
line-height: 1.2;
color: var(--est-text);
text-align: center;
margin: 0 0 32px;
letter-spacing: -0.01em;
}
.est-faq-subtitle {
text-align: center;
font-size: 18px;
color: var(--est-muted);
margin: -16px 0 32px;
}
.est-faq-cta {
text-align: center;
margin-top: 32px;
}
.est-faq h3 {
font-family: var(--font-heading);
font-size: 18px;
font-weight: 700;
color: var(--est-text);
padding: 16px 20px;
border: 1px solid var(--est-line);
border-bottom: none;
border-radius: 12px 12px 0 0;
margin: 20px 0 0;
background: rgba(235, 35, 140, 0.08);
}
.est-answer-container {
border: 1px solid var(--est-line);
border-top: none;
border-radius: 0 0 12px 12px;
background: #fff;
margin-bottom: 16px;
padding: 0 20px 16px;
box-shadow: var(--est-shadow);
}
.est-answer-container p,
.est-answer-container ul {
font-family: var(--font-body);
font-size: 16px;
line-height: 1.7;
color: var(--est-muted);
margin: 0 0 14px;
}
.est-answer-container p:first-child,
.est-answer-container ul:first-child {
padding-top: 16px;
}
.est-answer-container p:last-child,
.est-answer-container ul:last-child {
margin-bottom: 0;
}
.est-answer-container ul {
list-style: disc;
padding-left: 20px;
}
.est-answer-container li {
margin-bottom: 6px;
}
.est-answer-container strong {
color: var(--est-text);
font-weight: 700;
}
.est-answer-container a {
color: var(--est-primary);
text-decoration: none;
font-weight: 600;
}
.est-answer-container a:hover {
text-decoration: underline;
}  .est-modal-overlay {
position: fixed !important;
top: 0 !important;
left: 0 !important;
right: 0 !important;
bottom: 0 !important;
background: rgba(255, 255, 255, 0.88) !important;
background-image: none !important;
backdrop-filter: blur(4px) !important;
-webkit-backdrop-filter: blur(4px) !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
z-index: 999999 !important;
opacity: 0;
visibility: hidden;
transition: opacity 0.3s ease;
padding: 20px !important;
} .est-modal-overlay--dark {
background: rgba(17, 19, 34, 0.8) !important;
backdrop-filter: none !important;
-webkit-backdrop-filter: none !important;
}
.est-modal-overlay.is-visible {
opacity: 1 !important;
visibility: visible !important;
} .est-modal-content {
background: white !important;
padding: 40px 30px !important;
border-radius: 16px !important;
max-width: 500px !important;
width: 100% !important;
text-align: center !important;
position: relative !important;
transform: translateY(20px);
transition: transform 0.3s ease;
box-shadow: var(--est-shadow-lg) !important;
font-family: var(--font-body) !important;
box-sizing: border-box !important;
}
.est-modal-overlay.is-visible .est-modal-content {
transform: translateY(0) !important;
} .est-modal-close {
position: absolute !important;
top: 16px !important;
right: 16px !important;
left: auto !important;
background: rgba(0, 0, 0, 0.05) !important;
border: none !important;
width: 32px !important;
height: 32px !important;
border-radius: 50% !important;
font-size: 20px !important;
cursor: pointer !important;
color: var(--est-muted) !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
padding: 0 !important;
margin: 0 !important;
font-weight: 400 !important;
transform: none !important;
line-height: 1 !important;
}
.est-modal-close:hover {
background: rgba(0, 0, 0, 0.1) !important;
color: var(--est-text) !important;
}
.est-modal-close::before,
.est-modal-close::after {
content: none !important;
display: none !important;
} .est-modal-title {
font-family: var(--font-heading) !important;
font-size: 24px !important;
font-weight: 700 !important;
margin: 0 0 10px !important;
text-align: center !important;
color: var(--est-text) !important;
} .est-result-range {
font-family: var(--font-heading) !important;
font-size: 38px !important;
font-weight: 700 !important;
color: var(--est-primary) !important;
margin: 16px 0 !important;
line-height: 1.2 !important;
} .est-result-text {
font-size: 16px !important;
margin-bottom: 24px !important;
color: var(--est-muted) !important;
} #est-result-modal * {
box-sizing: border-box !important;
}
#est-result-modal button,
#est-result-modal a {
text-transform: none !important;
letter-spacing: normal !important;
} .est-highlight-box {
background: var(--est-grad);
border-left: 4px solid var(--est-primary);
border-radius: 8px;
padding: 20px 24px;
margin: 24px 0;
box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}
.est-highlight-box p {
font-size: 18px;
line-height: 1.7;
color: var(--est-text);
font-weight: 500;
margin: 0;
} .est-section-divider {
margin-top: 48px;
padding-top: 40px;
border-top: 2px solid var(--est-line);
}
.est-section-divider h3 {
font-family: var(--font-heading);
font-size: 24px;
line-height: 1.3;
margin: 0 0 16px;
color: var(--est-text);
} @media (max-width: 768px) {
.est-highlight-box {
padding: 16px 18px;
}
.est-highlight-box p {
font-size: 16px;
}
.est-section-divider h3 {
font-size: 22px;
}
} .est-meta-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 16px;
margin: 24px 0 32px;
}
.est-meta-item {
background: #F7F9FC;
border-left: 3px solid var(--est-primary);
padding: 14px 18px;
border-radius: 8px;
}
.est-meta-item strong {
display: block;
font-family: var(--font-heading);
font-size: 14px;
font-weight: 600;
color: var(--est-muted-light);
margin-bottom: 4px;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.est-meta-item span {
font-size: 18px;
font-weight: 600;
color: var(--est-text);
}
@media (max-width: 768px) {
.est-meta-grid {
grid-template-columns: 1fr;
}
} .est-promo-box {
background: var(--est-grad);
border: 1px solid rgba(17, 19, 34, 0.08);
border-radius: 12px;
padding: 24px 28px;
margin: 32px 0;
box-shadow: var(--est-shadow);
}
.est-promo-box p {
font-size: 16px;
line-height: 1.7;
color: var(--est-muted);
margin: 0 0 16px;
}
.est-promo-box p:last-child {
margin-bottom: 0;
}
@media (max-width: 768px) {
.est-promo-box {
padding: 18px 20px;
}
} .est-comparison-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
margin: 32px 0;
}
.est-comparison-box {
background: var(--est-grad);
border: 1px solid rgba(17, 19, 34, 0.08);
border-radius: 12px;
padding: 24px;
box-shadow: var(--est-shadow);
}
.est-comparison-box h4 {
font-family: var(--font-heading);
font-size: 20px;
font-weight: 600;
color: var(--est-text);
margin: 0 0 16px;
}
.est-comparison-box p {
font-size: 16px;
margin: 0 0 12px;
color: var(--est-muted);
}
.est-comparison-box ul {
font-size: 16px;
margin: 12px 0;
padding-left: 20px;
color: var(--est-muted);
}
.est-comparison-box li {
margin-bottom: 8px;
}
@media (max-width: 768px) {
.est-comparison-grid {
grid-template-columns: 1fr;
gap: 20px;
}
.est-comparison-box {
padding: 20px;
}
} .est-highlight-result {
background: rgba(235, 35, 140, 0.08);
border-left: 4px solid var(--est-primary);
border-radius: 8px;
padding: 12px 18px;
margin-top: 16px;
}
.est-highlight-result p {
font-size: 16px;
font-weight: 600;
color: var(--est-text);
margin: 0 0 6px;
}
.est-highlight-result p:last-child {
margin-bottom: 0;
} .est-video-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
margin: 40px 0;
}
.est-video-wrapper {
position: relative;
padding-bottom: 56.25%; height: 0;
overflow: hidden;
border-radius: 12px;
box-shadow: var(--est-shadow);
}
.est-video-wrapper iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;
border-radius: 12px;
}
@media (max-width: 768px) {
.est-video-grid {
grid-template-columns: 1fr;
gap: 20px;
}
}  .est-label {
font-family: var(--font-heading);
font-size: 13px;
font-weight: 600;
color: var(--est-text);
}
.est-req { color: var(--est-primary); margin-left: 2px; } .est-input, .est-select, .est-textarea {
padding: 11px 14px;
border: 1px solid rgba(17,19,34,.18);
border-radius: 8px;
font-size: 15px;
font-family: var(--font-body);
color: var(--est-text);
background: #fff;
outline: none;
transition: border-color 0.2s, box-shadow 0.2s;
width: 100%;
}
.est-input:focus, .est-select:focus, .est-textarea:focus {
border-color: var(--est-primary);
box-shadow: 0 0 0 3px rgba(235,35,140,0.1);
}
.est-input--readonly { background: var(--est-bg-light); }
.est-input--bold { font-weight: 700; }
.est-textarea { min-height: 80px; resize: vertical; } .est-form-section {
background: #fff;
border: 1px solid var(--est-line);
border-radius: 14px;
padding: 24px;
margin-bottom: 20px;
box-shadow: 0 4px 12px rgba(15,23,42,0.04);
}
.est-form-section-title {
font-family: var(--font-heading);
font-size: 15px;
font-weight: 700;
color: var(--est-primary);
text-transform: uppercase;
letter-spacing: 0.5px;
margin: 0 0 18px;
} .est-form-panel-title {
font-family: var(--font-heading);
font-size: 22px;
font-weight: 700;
margin: 0 0 6px;
color: var(--est-text);
}
.est-form-panel-subtitle {
font-size: 15px;
color: var(--est-muted);
margin: 0 0 28px;
} .est-toggle {
position: relative;
width: 44px; height: 24px;
flex-shrink: 0;
}
.est-toggle input { opacity: 0; width: 0; height: 0; }
.est-toggle-slider {
position: absolute;
inset: 0;
background: #e0e0e0;
border-radius: 999px;
cursor: pointer;
transition: background 0.2s;
}
.est-toggle-slider::before {
content: '';
position: absolute;
width: 18px; height: 18px;
left: 3px; top: 3px;
background: #fff;
border-radius: 50%;
transition: transform 0.2s;
}
.est-toggle input:checked + .est-toggle-slider { background: var(--est-primary); }
.est-toggle input:checked + .est-toggle-slider::before { transform: translateX(20px); }
.est-toggle-row {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 16px;
}
.est-toggle-label {
font-size: 15px;
font-weight: 600;
color: var(--est-text);
}
.est-toggle-desc {
font-size: 13px;
color: var(--est-muted-light);
margin-top: 2px;
} .est-radio-group {
display: flex;
gap: 12px;
flex-wrap: wrap;
margin-bottom: 16px;
}
.est-radio-card { flex: 1; min-width: 120px; }
.est-radio-card input { display: none; }
.est-radio-card label {
display: block;
padding: 12px 16px;
border: 2px solid var(--est-line);
border-radius: 10px;
text-align: center;
font-family: var(--font-heading);
font-weight: 600;
font-size: 14px;
cursor: pointer;
transition: all 0.2s;
color: var(--est-muted);
}
.est-radio-card input:checked + label {
border-color: var(--est-primary);
background: rgba(235,35,140,0.06);
color: var(--est-primary);
} .est-check-group { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.est-check-chip input { display: none; }
.est-check-chip label {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 8px 14px;
border: 1px solid rgba(17,19,34,.15);
border-radius: 999px;
font-size: 14px;
font-weight: 600;
cursor: pointer;
transition: all 0.2s;
color: var(--est-muted);
font-family: var(--font-heading);
}
.est-check-chip input:checked + label {
background: rgba(235,35,140,0.08);
border-color: var(--est-primary);
color: var(--est-primary);
} .est-btn-add {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 16px;
border: 2px dashed rgba(235,35,140,0.4);
border-radius: 8px;
background: transparent;
color: var(--est-primary);
font-family: var(--font-heading);
font-weight: 600;
font-size: 14px;
cursor: pointer;
transition: all 0.2s;
margin-top: 8px;
}
.est-btn-add:hover {
background: rgba(235,35,140,0.06);
border-color: var(--est-primary);
} .est-btn-remove {
background: none;
border: none;
color: #D32F2F;
cursor: pointer;
font-size: 13px;
font-weight: 600;
padding: 4px 8px;
border-radius: 6px;
font-family: var(--font-heading);
}
.est-btn-remove:hover { background: #ffeaea; }  .est-btn--outline,
.est-btn--outline:visited {
background: transparent;
color: var(--est-primary) !important;
border: 2px solid var(--est-primary);
box-shadow: none;
}
.est-btn--outline:hover {
background: var(--est-primary);
color: #fff !important;
box-shadow: 0 10px 25px rgba(235, 35, 140, 0.35);
}  .est-chip {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 14px;
border-radius: 999px;
background: #fff;
border: 1px solid var(--est-line);
font-size: 14px;
font-weight: 600;
color: var(--est-muted);
}
.est-chip span {
color: var(--est-primary);
}  .est-doc-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 24px;
margin: 28px 0;
}
.est-doc-card {
background: #fff;
border: 1px solid var(--est-line);
border-radius: 16px;
padding: 28px 24px;
box-shadow: var(--est-shadow);
text-align: center;
transition: box-shadow 0.2s ease;
}
.est-doc-card:hover {
box-shadow: 0 16px 36px rgba(15, 23, 42, 0.1);
}
.est-doc-card-icon {
font-size: 40px;
margin-bottom: 14px;
}
.est-doc-card h3 {
font-family: var(--font-heading);
font-size: 18px;
margin: 0 0 10px;
color: var(--est-text);
}
.est-doc-card p {
font-size: 15px;
line-height: 1.6;
color: var(--est-muted);
margin: 0 0 20px;
}
.est-doc-card-icon img {
width: 120px;
height: 120px;
object-fit: contain;
display: block;
margin: 0 auto;
}
.est-doc-card-actions {
display: flex;
gap: 8px;
justify-content: center;
flex-wrap: wrap;
}  .est-contract-box {
background: var(--est-bg-light);
border: 1px solid var(--est-line);
border-radius: 12px;
padding: 32px;
margin: 24px 0;
font-family: monospace;
font-size: 14px;
line-height: 1.8;
color: var(--est-text);
white-space: pre-wrap;
word-break: break-word;
max-height: 600px;
overflow-y: auto;
} .est-contract-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 16px;
flex-wrap: wrap;
gap: 12px;
}
.est-contract-header h3 {
font-family: var(--font-heading);
font-size: 20px;
margin: 0;
color: var(--est-text);
}  .est-checklist {
list-style: none;
margin: 0 0 14px;
padding: 0;
}
.est-checklist li {
display: flex;
gap: 12px;
align-items: flex-start;
font-size: 18px;
line-height: 1.7;
color: var(--est-muted);
margin-bottom: 14px;
}
.est-checklist li::before {
content: "✅";
flex-shrink: 0;
margin-top: 2px;
}
.est-checklist li strong {
color: var(--est-text);
} .est-links-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px;
margin: 24px 0;
} .est-link-card,
.est-link-card:visited {
display: flex;
align-items: center;
gap: 14px;
background: #fff;
border: 1px solid var(--est-line);
border-radius: 12px;
padding: 16px 20px;
text-decoration: none;
color: var(--est-text);
box-shadow: var(--est-shadow);
transition: all 0.18s ease;
font-family: var(--font-body);
}
.est-link-card:hover {
border-color: var(--est-primary);
box-shadow: 0 12px 28px rgba(235, 35, 140, 0.12);
transform: translateY(-1px);
text-decoration: none;
}
.est-link-card-icon {
font-size: 28px;
flex-shrink: 0;
}
.est-link-card-text strong {
display: block;
font-family: var(--font-heading);
font-size: 15px;
font-weight: 600;
color: var(--est-text);
margin-bottom: 2px;
}
.est-link-card-text span {
font-size: 13px;
color: var(--est-muted-light);
} .est-author-card {
display: flex;
gap: 28px;
align-items: flex-start;
background: #fff;
border: 1px solid var(--est-line);
border-radius: 16px;
padding: 32px;
box-shadow: var(--est-shadow);
margin: 24px 0;
}
.est-author-avatar {
width: 80px;
height: 80px;
border-radius: 50%;
background: rgba(235, 35, 140, 0.12);
display: flex;
align-items: center;
justify-content: center;
font-size: 36px;
flex-shrink: 0;
}
.est-author-info h3 {
font-family: var(--font-heading);
font-size: 20px;
margin: 0 0 6px;
color: var(--est-text);
}
.est-author-info p {
font-size: 16px;
line-height: 1.7;
color: var(--est-muted);
margin: 0 0 10px;
}  .est-section--bg {
background: var(--est-bg-light);
max-width: 100%;
padding-left: 20px;
padding-right: 20px;
}
.est-section--bg > * {
max-width: 1120px;
margin-left: auto;
margin-right: auto;
} .est-section-bg-wrap {
background: var(--est-bg-light);
width: 100%;
}  .est-table--modern th.col-head-green {
background: rgba(16, 185, 129, 0.08);
} .est-table--modern th.col-head-blue {
background: rgba(59, 130, 246, 0.08);
}   .est-faq h3 {
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
}
.est-faq h3::after {
content: "＋";
font-size: 20px;
color: var(--est-primary);
transition: transform 0.2s;
flex-shrink: 0;
margin-left: 12px;
}
.est-faq h3.open::after {
content: "－";
} .est-answer-container {
display: none;
}
.est-answer-container.open {
display: block;
}  .gnk-input-panel {
background: #fff;
border: 1px solid var(--est-line);
border-radius: 16px;
padding: 28px 32px;
box-shadow: var(--est-shadow);
margin-bottom: 28px;
}
.gnk-input-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32px;
align-items: start;
}
.gnk-field {
display: flex;
flex-direction: column;
gap: 10px;
}
.gnk-label {
font-family: var(--font-heading);
font-size: 13px;
font-weight: 700;
color: var(--est-text);
text-transform: uppercase;
letter-spacing: 0.5px;
}
.gnk-input-wrap {
position: relative;
}
.gnk-input {
width: 100%;
padding: 14px 52px 14px 16px;
border: 2px solid var(--est-line);
border-radius: 10px;
font-family: var(--font-heading);
font-size: 22px;
font-weight: 700;
color: var(--est-text);
background: #fff;
outline: none;
transition: border-color 0.2s, box-shadow 0.2s;
box-sizing: border-box;
-moz-appearance: textfield;
}
.gnk-input::-webkit-outer-spin-button,
.gnk-input::-webkit-inner-spin-button { -webkit-appearance: none; }
.gnk-input:focus {
border-color: var(--est-primary);
box-shadow: 0 0 0 3px rgba(235,35,140,0.1);
}
.gnk-input-unit {
position: absolute;
right: 14px;
top: 50%;
transform: translateY(-50%);
font-family: var(--font-heading);
font-size: 14px;
font-weight: 700;
color: var(--est-muted-light);
} .gnk-slider-wrap { display: flex; flex-direction: column; gap: 4px; }
.gnk-slider {
-webkit-appearance: none;
width: 100%;
height: 4px;
border-radius: 4px;
background: linear-gradient(to right, var(--est-primary) 0%, var(--est-primary) var(--slider-pct, 19%), #e0e0e0 var(--slider-pct, 19%), #e0e0e0 100%);
outline: none;
cursor: pointer;
}
.gnk-slider::-webkit-slider-thumb {
-webkit-appearance: none;
width: 20px; height: 20px;
border-radius: 50%;
background: var(--est-primary);
box-shadow: 0 2px 8px rgba(235,35,140,0.4);
cursor: pointer;
transition: transform 0.15s;
}
.gnk-slider::-webkit-slider-thumb:hover { transform: scale(1.2); }
.gnk-slider::-moz-range-thumb {
width: 20px; height: 20px;
border-radius: 50%;
background: var(--est-primary);
border: none;
cursor: pointer;
}
.gnk-slider-labels {
display: flex;
justify-content: space-between;
font-size: 11px;
color: var(--est-muted-light);
font-family: var(--font-heading);
font-weight: 600;
}  .gnk-select-wrap {
position: relative;
}
.gnk-select-wrap::after {
content: '';
position: absolute;
right: 14px;
top: 50%;
transform: translateY(-50%);
width: 0; height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 6px solid #111322;
pointer-events: none;
}
.gnk-select {
width: 100%;
padding: 14px 40px 14px 16px;
border: 2px solid var(--est-line);
border-radius: 10px;
font-family: var(--font-heading);
font-size: 16px;
font-weight: 600;
color: var(--est-text) !important;
background: #fff;
outline: none;
cursor: pointer;
-webkit-appearance: none !important;
-moz-appearance: none !important;
appearance: none !important;
background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%22292%22 height%3D%22292%22%3E%3Cpath fill%3D%22%23111322%22 d%3D%22M287 69.4a17.6 17.6 0 0 0-13-5.4H18.4c-5 0-9.3 1.8-12.9 5.4A17.6 17.6 0 0 0 0 82.2c0 5 1.8 9.3 5.4 12.9l128 127.9c3.6 3.6 7.8 5.4 12.8 5.4s9.2-1.8 12.8-5.4L287 95c3.5-3.5 5.4-7.8 5.4-12.8 0-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E") !important;
background-repeat: no-repeat !important;
background-position: right 14px center !important;
background-size: 10px !important;
background-color: #fff !important;
transition: border-color 0.2s;
box-sizing: border-box;
height: 52px;
line-height: 1.4;
opacity: 1 !important;
}
.gnk-select:focus { border-color: var(--est-primary); }
.gnk-select option {
color: #111322 !important;
background: #fff !important;
font-weight: 600;
} .gnk-results {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 20px;
margin-bottom: 16px;
} .gnk-card {
background: #fff;
border: 2px solid var(--est-line);
border-radius: 16px;
padding: 24px 20px;
box-shadow: var(--est-shadow);
display: flex;
flex-direction: column;
gap: 0;
transition: box-shadow 0.2s, border-color 0.2s, transform 0.2s;
position: relative;
}
.gnk-card:hover {
box-shadow: 0 16px 40px rgba(15,23,42,0.1);
transform: translateY(-2px);
}
.gnk-card--best {
border-color: var(--est-primary);
box-shadow: 0 8px 28px rgba(235,35,140,0.15);
} .gnk-best-badge {
position: absolute;
top: -12px;
left: 50%;
transform: translateX(-50%);
background: var(--est-primary);
color: #fff;
font-family: var(--font-heading);
font-size: 11px;
font-weight: 700;
padding: 4px 14px;
border-radius: 999px;
white-space: nowrap;
letter-spacing: 0.5px;
} .gnk-card--unavail {
opacity: 0.45;
filter: grayscale(0.5);
pointer-events: none;
}
.gnk-unavail-badge {
position: absolute;
top: -12px;
left: 50%;
transform: translateX(-50%);
background: #9e9e9e;
color: #fff;
font-family: var(--font-heading);
font-size: 11px;
font-weight: 700;
padding: 4px 14px;
border-radius: 999px;
white-space: nowrap;
} .gnk-provider-name {
font-family: var(--font-heading);
font-size: 17px;
font-weight: 700;
color: var(--est-text);
margin: 0 0 4px;
}
.gnk-provider-meta {
font-size: 12px;
color: var(--est-muted-light);
font-family: var(--font-heading);
margin-bottom: 16px;
} .gnk-variant-tabs {
display: flex;
gap: 6px;
margin-bottom: 18px;
flex-wrap: wrap;
}
.gnk-tab {
padding: 5px 12px;
border: 1px solid var(--est-line);
border-radius: 999px;
font-family: var(--font-heading);
font-size: 12px;
font-weight: 600;
color: var(--est-muted);
cursor: pointer;
background: #fff;
transition: all 0.15s;
}
.gnk-tab:hover { border-color: var(--est-primary); color: var(--est-primary); }
.gnk-tab.active {
background: var(--est-primary);
border-color: var(--est-primary);
color: #fff;
} .gnk-price-block {
margin-bottom: 16px;
padding: 14px 16px;
background: var(--est-bg-light);
border-radius: 10px;
}
.gnk-price-label {
font-family: var(--font-heading);
font-size: 11px;
font-weight: 600;
color: var(--est-muted-light);
text-transform: uppercase;
letter-spacing: 0.5px;
margin-bottom: 4px;
}
.gnk-price-value {
font-family: var(--font-heading);
font-size: 28px;
font-weight: 800;
color: var(--est-text);
line-height: 1;
}
.gnk-price-unit {
font-size: 14px;
font-weight: 600;
color: var(--est-muted);
margin-left: 4px;
}
.gnk-fee-line {
font-size: 12px;
color: var(--est-muted-light);
margin-top: 4px;
font-family: var(--font-heading);
} .gnk-risks {
display: flex;
flex-direction: column;
gap: 8px;
margin-bottom: 20px;
flex: 1;
}
.gnk-risk-row {
display: flex;
justify-content: space-between;
align-items: center;
gap: 8px;
}
.gnk-risk-label {
font-family: var(--font-heading);
font-size: 12px;
font-weight: 600;
color: var(--est-muted);
flex-shrink: 0;
}
.gnk-risk-val {
font-family: var(--font-heading);
font-size: 12px;
font-weight: 700;
text-align: right;
}
.gnk-risk-val--yes { color: #10B981; }
.gnk-risk-val--partial { color: #F59E0B; }
.gnk-risk-val--no { color: #EF4444; } .gnk-divider {
height: 1px;
background: var(--est-line);
margin: 12px 0;
} .gnk-cta {
display: block;
width: 100%;
padding: 12px;
background: var(--est-primary);
color: #fff !important;
border: none;
border-radius: 10px;
font-family: var(--font-heading);
font-size: 14px;
font-weight: 700;
text-align: center;
cursor: pointer;
text-decoration: none;
transition: background 0.18s, transform 0.15s, box-shadow 0.18s;
box-shadow: 0 6px 18px rgba(235,35,140,0.3);
}
.gnk-cta:hover {
background: var(--est-primary-hover);
transform: translateY(-1px);
box-shadow: 0 10px 24px rgba(208,10,114,0.4);
text-decoration: none;
color: #fff !important;
} .gnk-annual {
font-size: 11px;
color: var(--est-muted-light);
text-align: center;
margin-top: 8px;
font-family: var(--font-heading);
} .gnk-no-results {
grid-column: 1 / -1;
text-align: center;
padding: 40px 20px;
color: var(--est-muted);
font-family: var(--font-body);
font-size: 18px;
} @media (max-width: 900px) {
.gnk-results { grid-template-columns: 1fr; }
.gnk-input-row { grid-template-columns: 1fr; gap: 20px; }
.gnk-input-panel { padding: 20px; }
}
@media (max-width: 520px) {
.gnk-input { font-size: 18px; }
.gnk-price-value { font-size: 24px; }
}
.gen-wrap * { box-sizing: border-box; }
.gen-wrap {
max-width: 860px;
margin: 0 auto;
padding: 40px 20px;
font-family: var(--font-body);
color: var(--est-text);
}
.gen-progress {
display: flex;
justify-content: space-between;
margin-bottom: 40px;
position: relative;
}
.gen-progress::before {
content: '';
position: absolute;
top: 18px;
left: 0; right: 0;
height: 2px;
background: #e0e0e0;
z-index: 0;
}
.gen-progress-fill {
position: absolute;
top: 18px;
left: 0;
height: 2px;
background: var(--est-primary);
z-index: 1;
transition: width 0.3s ease;
}
.gen-step-dot {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
position: relative;
z-index: 2;
cursor: default;
}
.gen-step-dot span.dot {
width: 36px; height: 36px;
border-radius: 50%;
background: #fff;
border: 2px solid #e0e0e0;
display: flex;
align-items: center;
justify-content: center;
font-family: var(--font-heading);
font-weight: 700;
font-size: 14px;
color: #999;
transition: all 0.2s;
}
.gen-step-dot.active span.dot,
.gen-step-dot.done span.dot {
background: var(--est-primary);
border-color: var(--est-primary);
color: #fff;
}
.gen-step-dot span.label {
font-size: 12px;
color: #999;
font-weight: 600;
white-space: nowrap;
}
.gen-step-dot.active span.label,
.gen-step-dot.done span.label {
color: var(--est-primary);
}
.gen-panel { display: none; animation: genFadeIn 0.25s ease; }
.gen-panel.active { display: block; }
@keyframes genFadeIn {
from { opacity: 0; transform: translateY(8px); }
to   { opacity: 1; transform: translateY(0); }
}
.gen-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
margin-bottom: 16px;
}
.gen-row--3 { grid-template-columns: 1fr 1fr 1fr; }
.gen-row--full { grid-template-columns: 1fr; }
.gen-field { display: flex; flex-direction: column; gap: 6px; }
.gen-error-msg {
font-size: 12px;
color: #D32F2F;
display: none;
margin-top: 2px;
}
.gen-conditional { display: none; margin-top: 14px; }
.gen-conditional.show { display: block; }
.gen-person-block {
border-top: 1px solid rgba(17,19,34,.08);
padding-top: 16px;
margin-top: 16px;
}
.gen-person-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 14px;
}
.gen-person-title {
font-family: var(--font-heading);
font-size: 14px;
font-weight: 700;
color: var(--est-muted);
}
.gen-nav {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 28px;
padding-top: 20px;
border-top: 1px solid rgba(17,19,34,.08);
}
.gen-export-btns {
display: flex;
gap: 14px;
flex-wrap: wrap;
} .gen-type-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
margin-bottom: 20px;
}
.gen-type-card input[type=radio] { display: none; }
.gen-type-card label {
display: flex;
align-items: center;
gap: 12px;
padding: 14px 18px;
background: var(--est-bg, #F7F5F1);
border: 2px solid #e0e0e0;
border-radius: 10px;
cursor: pointer;
font-size: 15px;
font-weight: 600;
color: var(--est-muted, #6B6860);
transition: all 0.2s;
}
.gen-type-card label .type-icon { font-size: 24px; }
.gen-type-card label .type-body small {
display: block;
font-size: 12px;
font-weight: 400;
color: var(--est-light, #9B9890);
margin-top: 2px;
}
.gen-type-card input[type=radio]:checked + label {
border-color: var(--est-primary, #1B2A4A);
background: rgba(27,42,74,.04);
color: var(--est-primary, #1B2A4A);
box-shadow: 0 0 0 3px rgba(27,42,74,.08);
} .gen-info-box {
background: rgba(27,42,74,.05);
border: 1px solid rgba(27,42,74,.15);
border-left: 3px solid var(--est-primary, #1B2A4A);
border-radius: 8px;
padding: 12px 16px;
font-size: 13px;
color: var(--est-text, #1B2030);
margin-bottom: 16px;
}
.gen-info-box--warn {
background: rgba(200,150,62,.07);
border-color: rgba(200,150,62,.3);
border-left-color: var(--est-accent, #C8963E);
}
@media (max-width: 600px) {
.gen-row,
.gen-row--3 { grid-template-columns: 1fr; }
.gen-step-dot span.label { display: none; }
.gen-type-grid { grid-template-columns: 1fr; }
}    .est-hero--centered {
background: var(--est-grad);
}
.est-hero--centered .est-hero-inner {
max-width: 860px;
display: block;
text-align: center;
}
.est-hero--centered .est-hero-content {
text-align: center;
}
.est-hero--centered .est-hero-subtext {
max-width: 620px;
margin-left: auto;
margin-right: auto;
}
.est-hero--centered .est-hero-actions {
justify-content: center;
}
.est-hero--centered .est-chips {
justify-content: center;
margin-top: 20px;
} @media (max-width: 900px) { .est-hero h1 {
font-size: 36px;
}
.est-hero-inner {
flex-direction: column;
text-align: center;
}
.est-hero-content {
text-align: center;
}
.est-hero-image,
.est-hero-image--sm {
flex: 0 0 auto;
max-width: 100%;
} .est-hero-inner--grid {
grid-template-columns: 1fr;
gap: 32px;
}
.est-hero-image-wrap {
text-align: left;
} .est-data-section {
flex-direction: column;
}
.est-data-text,
.est-data-table-col {
flex: 1 1 auto;
} .est-features-grid {
grid-template-columns: 1fr;
}
.est-definitions {
grid-template-columns: 1fr;
} .est-toc-wrapper {
padding: 0 16px;
}
.est-toc {
max-width: 100%;
} .est-table-wrapper {
margin: 0 -16px 16px;
padding: 0 16px;
}
.est-comparison-table {
min-width: 750px;
}
.est-provider-logo {
max-width: 100px;
}
.est-comparison-table th,
.est-comparison-table td {
padding: 12px 10px;
font-size: 14px;
}
.est-comparison-table thead th:first-child {
min-width: 140px;
}
.est-comparison-table tbody td:first-child {
min-width: 140px;
position: sticky;
left: 0;
z-index: 1;
box-shadow: 2px 0 4px rgba(0, 0, 0, 0.05);
} .est-doc-grid {
grid-template-columns: 1fr;
}
.est-links-grid {
grid-template-columns: 1fr;
}
} @media (max-width: 768px) {
.est-hero {
padding: 56px 16px 28px;
}
.est-toc-wrapper {
padding: 0 16px;
}
.est-faq-wrapper {
padding: 40px 16px;
}
.est-faq h2 {
font-size: 28px;
}
.est-faq h3 {
font-size: 16px;
padding: 14px 16px;
}
.est-answer-container {
padding: 0 16px 14px;
}
.est-author-card {
flex-direction: column;
gap: 16px;
}
.est-contract-box {
padding: 20px 16px;
font-size: 13px;
}
} @media (max-width: 520px) {
.est-hero h1 {
font-size: 28px;
}
.est-section h2,
.est-content-section h2 {
font-size: 26px;
}
.est-hero-subtext {
max-width: 100%;
font-size: 16px;
}
.leaflet-popup-content {
width: calc(100vw - 48px) !important;
max-width: 320px;
}
.est-map-section {
padding: 32px 16px;
}
.est-data-section {
padding: 32px 16px;
}
.est-section {
padding: 32px 16px;
}
.est-calc-section {
padding: 40px 16px;
}
.est-content-section {
padding: 32px 16px;
}
.est-summary {
padding: 20px;
}
.est-calc-card {
padding: 24px;
}
.est-calc-card h2 {
font-size: 28px;
}
.est-calc-card h3 {
font-size: 20px;
}
.est-cta-panel {
padding: 24px 18px;
}
#est-map {
height: 50vh;
}
.est-layout-grid {
grid-template-columns: 1fr 1fr;
}
.est-form-row {
grid-template-columns: 1fr;
gap: 16px;
}
.est-form-wrapper {
padding: 24px 20px;
}
.est-table th,
.est-table td {
padding: 8px 10px;
font-size: 14px;
}
.est-comparison-table {
min-width: 650px;
font-size: 13px;
}
.est-provider-logo {
max-width: 80px;
}
.est-comparison-table thead th {
font-size: 13px;
padding: 14px 8px;
}
.est-comparison-table th,
.est-comparison-table td {
padding: 10px 8px;
}
.est-comparison-table thead th:first-child,
.est-comparison-table tbody td:first-child {
min-width: 120px;
}
.est-btn--sm {
padding: 8px 14px;
font-size: 13px;
}
.est-star-rating {
font-size: 14px;
}
.est-provider-name {
font-size: 13px;
}
.est-doc-card {
padding: 20px 16px;
}
.est-link-card {
padding: 14px 16px;
}
} @media (max-width: 500px) {
.est-modal-content {
padding: 30px 20px !important;
}
.est-result-range {
font-size: 32px !important;
}
.est-btn--modal {
padding: 12px 24px !important;
font-size: 15px !important;
}
}