/* =============================================================================
   EverSolveds Elite — Supplemental Styles
   Covers: Tools, About, Reviews, Contact, Booking, Video, Products,
           Services, Blog, Legal, 404, Generic pages, and all modals.
============================================================================= */

/* =====================================================================
   SHARED LAYOUT UTILITIES (used across multiple pages)
===================================================================== */
.es-split-grid         { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.es-grid-2             { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.es-grid-3             { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.es-grid-4             { display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; }
.es-items-center       { align-items:center; }
.es-gap-8              { gap:2rem; }
.es-gap-12             { gap:3rem; }
.es-gap-20             { gap:5rem; }
.es-mt-16              { margin-top:4rem; }
.es-mb-4               { margin-bottom:1rem; }
.es-mb-6               { margin-bottom:1.5rem; }
.es-mb-8               { margin-bottom:2rem; }
.es-mb-16              { margin-bottom:4rem; }
.es-mx-auto            { margin-inline:auto; }
.es-p-8                { padding:2rem; }
.es-p-10               { padding:2.5rem; }
.es-p-12               { padding:3rem; }
.es-py-20              { padding-block:5rem; }
.es-max-w-3xl          { max-width:56rem; }
.es-text-center        { text-align:center; }
.es-text-dark          { color:var(--neutral-900) !important; }
.es-text-neutral       { color:var(--neutral-400); }
.es-text-neutral-600   { color:#4b5563; }
.es-text-muted         { color:var(--neutral-500); }
.es-text-lg            { font-size:1.125rem; }
.es-text-xl            { font-size:1.25rem; }
.es-text-2xl           { font-size:1.5rem; }
.es-fw-bold            { font-weight:700; }
.es-link-brand         { color:var(--brand-red); text-decoration:none; }
.es-link-brand:hover   { text-decoration:underline; }

/* =====================================================================
   BUTTONS (extended)
===================================================================== */
.es-btn--full          { width:100%; justify-content:center; }
.es-btn--lg            { padding:.9rem 2.4rem; font-size:1.05rem; }
.es-btn--ghost         { background:transparent; border:1px solid rgba(255,255,255,.2); color:#fff; }
.es-btn--ghost:hover   { background:rgba(255,255,255,.08); }
.es-btn--outline-white { background:transparent; border:2px solid rgba(255,255,255,.7); color:#fff; padding:.7rem 1.8rem; border-radius:var(--radius-full); font-weight:600; text-decoration:none; transition:background .2s; }
.es-btn--outline-white:hover { background:rgba(255,255,255,.12); }
.es-btn--white         { background:#fff; color:#111; font-weight:700; padding:.75rem 2rem; border-radius:var(--radius-full); display:inline-flex; align-items:center; gap:.5rem; text-decoration:none; transition:box-shadow .2s,transform .2s; }
.es-btn--white:hover   { box-shadow:0 4px 20px rgba(255,255,255,.3); transform:translateY(-1px); }

/* =====================================================================
   HERO (shared dark)
===================================================================== */
.es-hero-title   { font-size:clamp(2.4rem,5vw,4rem); font-weight:900; line-height:1.1; margin-bottom:1.5rem; color:#fff; }
.es-hero-subtitle{ font-size:1.125rem; color:var(--neutral-400); max-width:50rem; margin-inline:auto; line-height:1.7; }

/* =====================================================================
   STAT ICONS
===================================================================== */
.es-stat-icon-wrap { width:3.5rem;height:3.5rem;background:var(--brand-red);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff; }
.es-stat-number    { font-size:2.5rem;font-weight:900;color:#fff;line-height:1; }
.es-stat-label     { color:var(--neutral-400);font-size:.9rem;margin-top:.4rem; }

/* =====================================================================
   SPLIT MEDIA
===================================================================== */
.es-rounded-media      { border-radius:1.5rem;overflow:hidden;position:relative; }
.es-rounded-media img  { width:100%;height:100%;object-fit:cover;display:block; }
.es-split-media        { position:relative; }
.es-media-badge        { position:absolute;bottom:1.5rem;left:1.5rem;background:rgba(0,0,0,.8);border:1px solid rgba(255,255,255,.1);padding:.75rem 1.25rem;border-radius:.75rem;color:#fff;font-size:.875rem; }

/* Mission / Vision */
.es-mv-block           { margin-bottom:2rem; }
.es-values-grid        { display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1.5rem; }
.es-value-item         { display:flex;align-items:center;gap:.6rem;font-size:.9rem;color:var(--neutral-300); }
.es-check-icon         { color:var(--brand-red);flex-shrink:0; }

/* =====================================================================
   TEAM GRID
===================================================================== */
.es-team-grid            { display:grid;grid-template-columns:repeat(4,1fr);gap:2rem; }
.es-team-card            { text-align:center; }
.es-team-img-wrap        { position:relative;border-radius:1.25rem;overflow:hidden;margin-bottom:1rem;aspect-ratio:1; }
.es-team-img-wrap img    { width:100%;height:100%;object-fit:cover;transition:transform .4s; }
.es-team-card:hover .es-team-img-wrap img { transform:scale(1.05); }
.es-team-hover-overlay   { position:absolute;inset:0;background:rgba(220,38,38,.8);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;color:#fff;font-size:.9rem;font-weight:600;padding:1rem;text-align:center; }
.es-team-card:hover .es-team-hover-overlay { opacity:1; }
.es-team-name            { font-size:1.05rem;font-weight:700;color:#fff;margin-bottom:.25rem; }
.es-team-role            { font-size:.875rem;color:var(--brand-red); }

/* =====================================================================
   TOOLS PAGE
===================================================================== */
.es-tools-hero              { padding-top:9rem;padding-bottom:5rem;text-align:center; }
.es-tools-hero-title        { font-size:clamp(2.4rem,5vw,3.8rem);font-weight:900;line-height:1.1;margin-bottom:1.25rem;color:#fff; }
.es-tools-hero-subtitle     { font-size:1.125rem;color:var(--neutral-400);max-width:44rem;margin-inline:auto; }
.es-tools-grid-section      { background:#111; }
.es-tools-grid              { display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem; }

.es-tool-card               { cursor:pointer;padding:2rem;border-radius:1.25rem;transition:transform .25s,box-shadow .25s;outline:none; }
.es-tool-card:hover,
.es-tool-card:focus-visible  { transform:translateY(-6px);box-shadow:0 20px 40px rgba(0,0,0,.5); }
.es-tool-card__icon          { width:3.5rem;height:3.5rem;background:rgba(220,38,38,.15);border-radius:.75rem;display:flex;align-items:center;justify-content:center;color:var(--brand-red);margin-bottom:1.25rem; }
.es-tool-card__title         { font-size:1.15rem;font-weight:700;color:#fff;margin-bottom:.6rem; }
.es-tool-card__desc          { font-size:.9rem;color:var(--neutral-400);line-height:1.65;flex:1; }
.es-tool-card__footer        { display:flex;align-items:center;justify-content:space-between;margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.06); }
.es-tool-badge               { font-size:.75rem;font-weight:600;background:rgba(220,38,38,.15);color:var(--brand-red);padding:.25rem .75rem;border-radius:var(--radius-full); }
.es-tool-arrow               { color:var(--neutral-500);transition:color .2s,transform .2s; }
.es-tool-card:hover .es-tool-arrow { color:var(--brand-red);transform:translateX(4px); }
.es-tools-why                { background:#111; }

/* =====================================================================
   CALCULATOR MODAL
===================================================================== */
.es-modal-overlay             { position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.8);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1.5rem;opacity:0;transition:opacity .3s; }
.es-modal-overlay.open        { opacity:1; }
.es-modal-container           { background:#1a1a1a;border:1px solid rgba(255,255,255,.1);border-radius:1.5rem;padding:2.5rem;width:100%;max-width:32rem;max-height:90vh;overflow-y:auto;position:relative;transform:translateY(20px);transition:transform .3s; }
.es-modal-overlay.open .es-modal-container { transform:translateY(0); }
.es-modal-close               { position:absolute;top:1.25rem;right:1.25rem;background:rgba(255,255,255,.08);border:none;border-radius:50%;width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:background .2s; }
.es-modal-close:hover         { background:rgba(220,38,38,.3); }
.es-modal-header              { display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem; }
.es-modal-icon                { width:3rem;height:3rem;background:rgba(220,38,38,.15);border-radius:.75rem;display:flex;align-items:center;justify-content:center;color:var(--brand-red); }
.es-modal-title               { font-size:1.35rem;font-weight:800;color:#fff;margin:0; }
.es-modal-type                { font-size:.8rem;color:var(--neutral-500);margin:0; }
.es-modal-desc                { color:var(--neutral-400);font-size:.9rem;line-height:1.65;margin-bottom:1.5rem; }
.es-modal-fields              { display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem; }
.es-modal-field               { display:flex;flex-direction:column;gap:.35rem; }
.es-modal-label               { font-size:.85rem;font-weight:600;color:var(--neutral-300); }
.es-modal-input               { background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:.75rem;padding:.7rem 1rem;color:#fff;font-size:.95rem;outline:none;transition:border-color .2s; }
.es-modal-input:focus         { border-color:var(--brand-red); }
.es-modal-result              { background:rgba(220,38,38,.1);border:1px solid rgba(220,38,38,.3);border-radius:1rem;padding:1.5rem;text-align:center;margin-top:1.25rem; }
.es-modal-result-label        { font-size:.8rem;color:var(--neutral-400);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem; }
.es-modal-result-value        { font-size:2.5rem;font-weight:900;color:#fff;line-height:1; }
.es-modal-result-note         { font-size:.75rem;color:var(--neutral-500);margin-top:.75rem; }

/* =====================================================================
   REVIEWS PAGE
===================================================================== */
.es-reviews-stat              { text-align:center;padding:2rem; }
.es-reviews-stat__number      { font-size:2.8rem;font-weight:900;color:#fff;line-height:1; }
.es-reviews-stat__label       { color:var(--neutral-400);font-size:.9rem;margin-top:.4rem; }
.es-masonry                   { columns:3;column-gap:1.5rem; }
.es-review-card               { break-inside:avoid;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:1.25rem;padding:1.75rem;margin-bottom:1.5rem; }
.es-review-header             { display:flex;align-items:center;gap:1rem;margin-bottom:1rem; }
.es-review-avatar-wrap        { position:relative; }
.es-review-avatar             { width:3rem;height:3rem;border-radius:50%;object-fit:cover; }
.es-review-avatar-badge       { position:absolute;bottom:-2px;right:-2px;width:1.25rem;height:1.25rem;background:var(--brand-red);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff; }
.es-review-name               { font-size:1rem;font-weight:700;color:#fff;margin:0; }
.es-review-role               { font-size:.8rem;color:var(--neutral-500);margin:.1rem 0 0; }
.es-stars                     { display:flex;gap:2px;margin-bottom:.75rem; }
.es-review-text               { color:var(--neutral-300);font-size:.9rem;line-height:1.7;font-style:italic; }
.es-review-footer             { display:flex;align-items:center;justify-content:space-between;margin-top:1rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.06); }
.es-verified                  { display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--brand-red); }
.es-review-date               { font-size:.75rem;color:var(--neutral-500); }
.es-reviews-cta-box           { background:linear-gradient(135deg,var(--brand-red),#b91c1c);border-radius:2rem;padding:4rem;text-align:center; }

/* =====================================================================
   CONTACT PAGE
===================================================================== */
.es-contact-title          { font-size:clamp(2rem,4.5vw,3.2rem);font-weight:900;line-height:1.1;color:#fff;margin-bottom:1.5rem; }
.es-contact-subtitle       { color:var(--neutral-400);line-height:1.7;max-width:36rem;margin-bottom:2rem; }
.es-contact-info-list      { display:flex;flex-direction:column;gap:1.25rem;margin-bottom:2rem; }
.es-contact-info-item      { display:flex;align-items:flex-start;gap:1rem; }
.es-contact-icon           { width:2.75rem;height:2.75rem;background:rgba(220,38,38,.12);border-radius:.75rem;display:flex;align-items:center;justify-content:center;color:var(--brand-red);flex-shrink:0; }
.es-contact-info-label     { font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--neutral-500);margin:0 0 .2rem; }
.es-contact-info-value     { color:#fff;font-weight:600;font-size:.95rem;text-decoration:none; }
.es-contact-info-value:hover { color:var(--brand-red); }
.es-online-badge           { display:inline-flex;align-items:center;gap:.6rem;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.3);padding:.5rem 1rem;border-radius:var(--radius-full);margin-bottom:.75rem; }
.es-online-dot             { width:.625rem;height:.625rem;background:#10b981;border-radius:50%;animation:pulse 2s infinite; }
.es-online-text            { color:#10b981;font-size:.875rem;font-weight:600; }
.es-response-note          { color:var(--neutral-500);font-size:.85rem; }

/* Contact Form Card */
.es-contact-form-card      { padding:2.5rem; }
.es-contact-alert          { padding:1rem;border-radius:.75rem;margin-bottom:1.25rem;font-size:.9rem; }
.es-contact-alert--success { background:rgba(16,185,129,.15);border:1px solid rgba(16,185,129,.3);color:#10b981; }
.es-contact-alert--error   { background:rgba(220,38,38,.15);border:1px solid rgba(220,38,38,.3);color:#f87171; }
.es-contact-whatsapp       { display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.08);font-size:.875rem;color:var(--neutral-500); }
.es-whatsapp-link          { display:inline-flex;align-items:center;gap:.4rem;color:#25D366;font-weight:600;text-decoration:none;border:1px solid #25D366;padding:.35rem .9rem;border-radius:var(--radius-full);font-size:.85rem;transition:background .2s; }
.es-whatsapp-link:hover    { background:rgba(37,211,102,.1); }

/* Form Shared */
.es-form                   { display:flex;flex-direction:column;gap:1.25rem; }
.es-form-row               { display:grid;grid-template-columns:1fr 1fr;gap:1.25rem; }
.es-form-field             { display:flex;flex-direction:column;gap:.4rem; }
.es-form-label             { font-size:.85rem;font-weight:600;color:var(--neutral-300); }
.es-form-input             { background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:.75rem;padding:.75rem 1rem;color:#fff;font-size:.95rem;outline:none;transition:border-color .2s;width:100%;box-sizing:border-box; }
.es-form-input:focus       { border-color:var(--brand-red); }
.es-form-input option      { background:#1a1a1a; }

/* Input with icon */
.es-input-icon-wrap        { position:relative; }
.es-input-icon             { position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--neutral-500);pointer-events:none; }
.es-form-input--icon       { padding-left:3rem; }

/* Map */
.es-map-wrap               { position:relative;height:420px;border-radius:1.5rem;overflow:hidden;border:1px solid rgba(255,255,255,.08); }
.es-map-overlay-card       { position:absolute;bottom:1.5rem;left:1.5rem;background:rgba(0,0,0,.85);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);padding:1rem 1.5rem;border-radius:1rem;color:#fff; }
.es-map-overlay-card h3    { font-size:1rem;font-weight:700;margin:0 0 .3rem; }
.es-map-overlay-card p     { font-size:.85rem;color:var(--neutral-400);margin:0; }

/* =====================================================================
   BOOKING PAGE
===================================================================== */
.es-booking-layout           { display:grid;grid-template-columns:1.3fr .7fr;gap:3rem;align-items:flex-start; }
.es-booking-form             { display:flex;flex-direction:column;gap:1.25rem; }
.es-booking-success          { text-align:center;padding:4rem 2rem; }
.es-booking-success-icon     { width:5rem;height:5rem;background:rgba(16,185,129,.15);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#10b981;margin:0 auto 1.5rem; }
.es-booking-success h2       { font-size:1.75rem;font-weight:800;color:#fff;margin-bottom:.75rem; }
.es-booking-success p        { color:var(--neutral-400);margin-bottom:2rem; }
.es-checklist                { list-style:none;padding:0;display:flex;flex-direction:column;gap:.75rem; }
.es-checklist li             { display:flex;align-items:center;gap:.65rem;font-size:.9rem;color:var(--neutral-300); }
.es-checklist li svg         { color:var(--brand-red);flex-shrink:0; }
.es-booking-help-card h3     { color:#fff; }
.es-booking-help-card        { margin-top:1.5rem; }

/* =====================================================================
   VIDEO EDITING PAGE
===================================================================== */
.es-video-card__icon         { width:4rem;height:4rem;background:rgba(220,38,38,.12);border-radius:1rem;display:flex;align-items:center;justify-content:center;color:var(--brand-red);margin-bottom:1.5rem; }
.es-video-card__title        { font-size:1.4rem;font-weight:800;color:#fff;margin-bottom:.75rem; }
.es-video-card__desc         { color:var(--neutral-400);line-height:1.7;margin-bottom:1.5rem; }
.es-video-feature-list       { list-style:none;padding:0;display:flex;flex-direction:column;gap:.6rem;margin-bottom:2rem; }
.es-video-feature-list li    { display:flex;align-items:center;gap:.6rem;font-size:.9rem;color:var(--neutral-300); }
.es-video-feature-list li svg{ color:var(--brand-red);flex-shrink:0; }
.es-process-grid             { display:grid;grid-template-columns:repeat(4,1fr);gap:2rem; }
.es-process-icon             { width:3.5rem;height:3.5rem;background:rgba(220,38,38,.12);border-radius:1rem;display:flex;align-items:center;justify-content:center;color:var(--brand-red);margin:0 auto 1rem; }
.es-process-title            { font-size:1.05rem;font-weight:700;margin-bottom:.5rem; }
.es-process-desc             { font-size:.875rem;line-height:1.65; }
.es-portfolio-grid           { display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem; }
.es-portfolio-item           { position:relative;border-radius:1rem;overflow:hidden;aspect-ratio:9/16; }
.es-portfolio-item img       { width:100%;height:100%;object-fit:cover;transition:transform .4s; }
.es-portfolio-item:hover img { transform:scale(1.06); }
.es-portfolio-overlay        { position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.85),transparent);padding:1.5rem 1rem 1rem;opacity:0;transition:opacity .3s; }
.es-portfolio-item:hover .es-portfolio-overlay { opacity:1; }
.es-portfolio-name           { color:#fff;font-weight:700;font-size:.95rem;margin-bottom:.2rem; }
.es-portfolio-meta           { color:var(--neutral-400);font-size:.8rem; }
.es-portfolio-play           { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:.7;pointer-events:none; }
.purple-gradient             { background:linear-gradient(135deg,#7c3aed,#4f46e5); }
.es-video-cta                { border-radius:2rem;padding:5rem 4rem;text-align:center; }
.es-video-cta__title         { font-size:2.5rem;font-weight:900;color:#fff;margin-bottom:1rem; }
.es-video-cta__subtitle      { color:rgba(255,255,255,.75);font-size:1.05rem;line-height:1.7;margin-bottom:2.5rem;max-width:36rem;margin-inline:auto; }

/* =====================================================================
   PRODUCTS PAGE
===================================================================== */
.es-products-page            { background:var(--neutral-950); }
.es-products-list            { display:flex;flex-direction:column;gap:6rem; }
.es-product-item             { display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center; }
.es-product-item--reverse    { direction:rtl; }
.es-product-item--reverse > * { direction:ltr; }
.es-product-icon             { width:3rem;height:3rem;background:rgba(220,38,38,.12);border-radius:.75rem;display:flex;align-items:center;justify-content:center;color:var(--brand-red);margin-bottom:1.25rem; }
.es-product-title            { font-size:2rem;font-weight:900;color:#fff;margin-bottom:1rem; }
.es-product-desc             { color:var(--neutral-400);line-height:1.75;margin-bottom:1.5rem; }
.es-product-features         { list-style:none;padding:0;display:flex;flex-direction:column;gap:.6rem;margin-bottom:2rem; }
.es-product-features li      { display:flex;align-items:center;gap:.6rem;font-size:.9rem;color:var(--neutral-300); }
.es-product-features li svg  { color:var(--brand-red);flex-shrink:0; }
.es-product-actions          { display:flex;gap:1rem; }
.es-product-media            { border-radius:1.5rem;overflow:hidden;aspect-ratio:16/10; }
.es-product-media img        { width:100%;height:100%;object-fit:cover;display:block; }

/* =====================================================================
   SERVICES GRID
===================================================================== */
.es-services-grid            { display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem; }
.es-service-card             { padding:2rem;border-radius:1.25rem;text-decoration:none;display:flex;flex-direction:column;gap:.75rem;transition:transform .25s,box-shadow .25s; }
.es-service-card:hover       { transform:translateY(-6px);box-shadow:0 20px 40px rgba(0,0,0,.5); }
.es-service-card__icon       { width:3rem;height:3rem;background:rgba(220,38,38,.12);border-radius:.75rem;display:flex;align-items:center;justify-content:center;color:var(--brand-red); }
.es-service-card__title      { font-size:1.1rem;font-weight:700;color:#fff; }
.es-service-card__desc       { font-size:.875rem;color:var(--neutral-400);line-height:1.65;flex:1; }
.es-service-card__link       { display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--brand-red);font-weight:600;margin-top:auto; }

/* Service Detail */
.es-service-detail-page      { background:var(--neutral-950); }
.es-service-hero-title       { font-size:clamp(2rem,4.5vw,3.2rem);font-weight:900;color:#fff;line-height:1.1;margin-bottom:1.25rem; }
.es-service-hero-desc        { color:var(--neutral-400);font-size:1.05rem;line-height:1.75;margin-bottom:2rem;max-width:36rem; }
.es-service-hero-img         { border-radius:1.5rem;overflow:hidden;aspect-ratio:16/10; }
.es-service-hero-img img     { width:100%;height:100%;object-fit:cover;display:block; }
.es-benefit-list             { display:flex;flex-direction:column;gap:.75rem; }
.es-benefit-item             { display:flex;align-items:flex-start;gap:.75rem;font-size:.9rem;color:var(--neutral-300); }
.es-benefit-item svg         { color:var(--brand-red);flex-shrink:0;margin-top:2px; }
.es-process-list             { display:flex;flex-direction:column;gap:1rem; }
.es-process-item             { display:flex;align-items:flex-start;gap:1rem; }
.es-process-num              { width:2rem;height:2rem;background:var(--brand-red);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.85rem;flex-shrink:0; }

/* Service CTA */
.es-service-cta              { border-radius:2rem;overflow:hidden;position:relative;background:linear-gradient(135deg,var(--brand-red),#b91c1c); }
.es-service-cta__inner       { padding:5rem 4rem;text-align:center; }

/* Trust avatars row */
.es-trust-avatars            { display:flex;align-items:center;gap:.5rem;margin-top:1.5rem;justify-content:center; }
.es-trust-avatars img        { width:2.5rem;height:2.5rem;border-radius:50%;border:2px solid var(--neutral-950);margin-left:-.5rem;object-fit:cover; }
.es-trust-avatars img:first-child { margin-left:0; }
.es-trust-text               { margin-left:.5rem;text-align:left; }
.es-trust-text span          { display:block;font-size:.75rem;color:rgba(255,255,255,.6); }
.es-trust-text strong        { display:block;font-size:.9rem;color:#fff; }

/* =====================================================================
   BLOG
===================================================================== */
.es-blog-page              { background:var(--neutral-950); }
.es-blog-grid              { display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem; }
.es-blog-card              { border-radius:1.25rem;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s;text-decoration:none; }
.es-blog-card:hover        { transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,.5); }
.es-blog-card__thumb       { overflow:hidden;aspect-ratio:16/9;display:block; }
.es-blog-card__thumb img   { width:100%;height:100%;object-fit:cover;transition:transform .4s; }
.es-blog-card:hover .es-blog-card__thumb img { transform:scale(1.04); }
.es-blog-card__body        { padding:1.5rem;display:flex;flex-direction:column;flex:1; }
.es-blog-meta              { display:flex;align-items:center;gap:.75rem;font-size:.8rem;color:var(--neutral-500);margin-bottom:.75rem; }
.es-blog-meta span         { display:flex;align-items:center;gap:.3rem; }
.es-blog-card__title       { font-size:1.05rem;font-weight:700;color:#fff;line-height:1.4;margin-bottom:.6rem; }
.es-blog-card__title a     { color:inherit;text-decoration:none; }
.es-blog-card__title a:hover { color:var(--brand-red); }
.es-blog-card__excerpt     { font-size:.875rem;color:var(--neutral-400);line-height:1.65;flex:1; }
.es-blog-card__footer      { display:flex;align-items:center;justify-content:space-between;margin-top:1rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.06); }
.es-blog-author            { display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--neutral-400); }
.es-blog-author__avatar    { border-radius:50%; }
.es-blog-card__read-more   { display:flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--brand-red);font-weight:600;text-decoration:none; }
.es-pagination             { margin-top:3rem;display:flex;justify-content:center; }
.es-pagination .nav-links  { display:flex;gap:.5rem; }
.es-pagination .page-numbers { width:2.5rem;height:2.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:.5rem;background:rgba(255,255,255,.06);color:var(--neutral-400);text-decoration:none;font-size:.9rem;border:1px solid rgba(255,255,255,.08); }
.es-pagination .page-numbers.current { background:var(--brand-red);color:#fff;border-color:var(--brand-red); }
.es-pagination .page-numbers:hover   { background:rgba(220,38,38,.2);color:#fff; }

/* Single Post */
.es-single-layout          { max-width:48rem;margin-inline:auto; }
.es-article-meta           { display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem; }
.es-article-date           { font-size:.85rem;color:var(--neutral-500); }
.es-article-read           { font-size:.85rem;color:var(--neutral-500); }
.es-article-title          { font-size:clamp(1.75rem,4vw,2.8rem);font-weight:900;color:#fff;line-height:1.2;margin-bottom:1.5rem; }
.es-author-bar             { display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:1rem;margin-bottom:2rem; }
.es-author-bar__avatar     { border-radius:50%;flex-shrink:0; }
.es-author-bar__name       { font-weight:700;color:#fff;margin:0; }
.es-author-bar__bio        { font-size:.8rem;color:var(--neutral-500);margin:.2rem 0 0; }
.es-article-thumb          { border-radius:1.25rem;overflow:hidden;margin-bottom:2.5rem; }
.es-article-thumb__img     { width:100%;display:block; }
.es-article-content        { color:var(--neutral-300);font-size:1.05rem;line-height:1.8; }
.es-article-content h2,
.es-article-content h3     { color:#fff;margin:2rem 0 1rem; }
.es-article-content p      { margin-bottom:1.25rem; }
.es-article-content a      { color:var(--brand-red); }
.es-article-content ul,
.es-article-content ol     { margin-bottom:1.25rem;padding-left:1.5rem; }
.es-article-content li     { margin-bottom:.4rem; }
.es-article-tags           { margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.08);font-size:.875rem;color:var(--neutral-500); }
.es-article-tags a         { color:var(--brand-red);margin-right:.5rem;text-decoration:none; }
.es-share-bar              { display:flex;align-items:center;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.08); }
.es-share-bar p            { font-size:.85rem;color:var(--neutral-500);margin:0; }
.es-share-link             { font-size:.8rem;font-weight:600;color:var(--brand-red);text-decoration:none;padding:.3rem .8rem;border:1px solid rgba(220,38,38,.3);border-radius:var(--radius-full);transition:background .2s; }
.es-share-link:hover       { background:rgba(220,38,38,.1); }
.es-related-posts          { margin-top:4rem;padding-top:4rem;border-top:1px solid rgba(255,255,255,.08); }
.es-blog-card--related     { color:inherit; }

/* =====================================================================
   LEGAL PAGES
===================================================================== */
.es-legal-container        { max-width:52rem;margin-inline:auto; }
.es-legal-header           { margin-bottom:2.5rem; }
.es-legal-content          { padding:3rem;color:var(--neutral-300);line-height:1.85; }
.es-legal-content h2       { font-size:1.25rem;font-weight:700;color:#fff;margin:2rem 0 .75rem; }
.es-legal-content p        { margin-bottom:1.1rem; }
.es-legal-content ul       { padding-left:1.5rem;margin-bottom:1.1rem; }
.es-legal-content li       { margin-bottom:.5rem; }
.es-legal-content strong   { color:#fff; }

/* =====================================================================
   404 PAGE
===================================================================== */
.es-404-page               { background:var(--neutral-950);min-height:100vh; }
.es-404-inner              { max-width:32rem;margin-inline:auto; }
.es-404-number             { font-size:10rem;font-weight:900;line-height:1;letter-spacing:-.05em;color:#fff;margin-bottom:1rem; }
.es-404-number span        { display:inline-block; }
.es-404-title              { font-size:1.75rem;font-weight:800;color:#fff;margin-bottom:1rem; }
.es-404-desc               { color:var(--neutral-400);font-size:1rem;line-height:1.7;margin-bottom:2.5rem; }
.es-404-search             { margin-bottom:2.5rem; }
.es-404-search .search-form { display:flex;gap:.5rem; }
.es-404-search input[type="search"] { flex:1;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:.75rem;padding:.75rem 1rem;color:#fff;outline:none; }
.es-404-search button,
.es-404-search input[type="submit"] { background:var(--brand-red);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.75rem;cursor:pointer;font-weight:600; }
.es-404-links              { display:flex;justify-content:center;flex-wrap:wrap;gap:.75rem; }

/* =====================================================================
   GENERIC PAGE
===================================================================== */
.es-generic-article        { max-width:48rem;margin-inline:auto; }
.es-generic-thumb          { border-radius:1.25rem;overflow:hidden; }
.es-generic-thumb img      { width:100%;display:block; }
.es-generic-content        { color:var(--neutral-300);font-size:1.05rem;line-height:1.8; }
.es-generic-content h2,
.es-generic-content h3     { color:#fff;margin:2rem 0 .75rem; }
.es-generic-content p      { margin-bottom:1.25rem; }
.es-generic-content a      { color:var(--brand-red); }
.es-page-links             { margin-top:2rem;display:flex;gap:.5rem;flex-wrap:wrap; }
.es-page-links a           { padding:.3rem .75rem;background:rgba(255,255,255,.06);border-radius:.5rem;color:var(--neutral-300);text-decoration:none;font-size:.875rem; }

/* =====================================================================
   ARCHIVE / SEARCH
===================================================================== */
.es-archive-page           { background:var(--neutral-950); }

/* =====================================================================
   ABOUT PAGE
===================================================================== */
.es-about-page .es-hero-title,
.es-about-page .es-section-title { color:#fff; }
.es-about-page             { background:#fff; }
.es-about-page .es-hero-title { color:var(--neutral-900); }
.es-about-page .es-badge   { background:rgba(220,38,38,.1);border:1px solid rgba(220,38,38,.2);color:var(--brand-red); }

/* =====================================================================
   RESPONSIVE — all new pages
===================================================================== */
@media (max-width: 1024px) {
  .es-split-grid,
  .es-product-item,
  .es-booking-layout      { grid-template-columns:1fr; }
  .es-product-item--reverse { direction:ltr; }
  .es-grid-4,
  .es-team-grid,
  .es-process-grid        { grid-template-columns:repeat(2,1fr); }
  .es-tools-grid,
  .es-services-grid,
  .es-blog-grid,
  .es-portfolio-grid      { grid-template-columns:repeat(2,1fr); }
  .es-masonry             { columns:2; }
}

@media (max-width: 640px) {
  .es-grid-2,
  .es-grid-3,
  .es-grid-4,
  .es-team-grid,
  .es-process-grid,
  .es-tools-grid,
  .es-services-grid,
  .es-blog-grid,
  .es-portfolio-grid      { grid-template-columns:1fr; }
  .es-masonry             { columns:1; }
  .es-form-row            { grid-template-columns:1fr; }
  .es-cta-actions         { flex-direction:column; }
  .es-video-cta           { padding:3rem 1.5rem; }
  .es-service-cta__inner  { padding:3rem 1.5rem; }
  .es-404-number          { font-size:6rem; }
  .es-booking-sidebar     { display:none; }
  .es-legal-content       { padding:1.75rem; }
}
