/* EzyConvert production hardening — 2026-07 */
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;scroll-behavior:smooth}
body{max-width:100%;overflow-x:hidden}
img,canvas,svg,video{max-width:100%}
button,input,select,textarea{font:inherit}

/* Larger brand mark while preserving the current approved logo artwork. */
.logo-instant-shell,
.logo-instant-shell .logo,
.brand-refresh .logo,
.tool-brand-header .logo,
.nav-brand img{
  width:70px!important;
  height:70px!important;
  min-width:70px!important;
  min-height:70px!important;
  aspect-ratio:1/1!important;
  object-fit:cover!important;
  border-radius:16px!important;
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  overflow:hidden!important;
  background:transparent!important;
}
.brand.brand-refresh,.tool-brand-header .brand,.nav-brand{align-items:center!important}
@media(max-width:900px){
  .logo-instant-shell,.logo-instant-shell .logo,.brand-refresh .logo,.tool-brand-header .logo,.nav-brand img{
    width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important;border-radius:14px!important
  }
}
@media(max-width:560px){
  .logo-instant-shell,.logo-instant-shell .logo,.brand-refresh .logo,.tool-brand-header .logo,.nav-brand img{
    width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;border-radius:12px!important
  }
}

/* Prevent transient side/top lines during scrolling and GPU compositing. */
.home-page .home-tools-showcase,
.home-page .faq-section{
  position:relative!important;
  max-width:100%!important;
  overflow-x:clip!important;
  isolation:isolate!important;
}
.home-page .home-tools-showcase .home-detail-grid,
.home-page .faq-section .faq-list{overflow:hidden!important}
.home-page .home-tools-showcase .home-detail-card,
.home-page .faq-section .faq-item{
  max-width:100%!important;
  overflow:hidden!important;
  backface-visibility:hidden!important;
  transform:translateZ(0)!important;
}
@supports not (overflow:clip){
  .home-page .home-tools-showcase,.home-page .faq-section{overflow-x:hidden!important}
}

/* Accessible interaction states without altering the visual design. */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid rgba(37,99,235,.48)!important;
  outline-offset:3px!important;
}
button:disabled{cursor:not-allowed}
[hidden]{display:none!important}

/* Avoid accidental horizontal overflow from long filenames or URLs. */
.file-name,.new-file-name,.new-order-details,.pdf-compress-item-info,.selected-list,.file-meta{
  min-width:0!important;overflow-wrap:anywhere!important;word-break:break-word!important
}

/* Keep native image-format menus readable regardless of the OS/browser theme. */
.global-format-box select,
.control-row select{
  color:#132238!important;
  -webkit-text-fill-color:#132238!important;
  background-color:#fff!important;
  color-scheme:light!important;
}
.global-format-box select option,
.control-row select option{
  color:#132238!important;
  -webkit-text-fill-color:#132238!important;
  background:#fff!important;
}
.dark-theme .global-format-box select,
.dark-theme .control-row select{
  color:#eaf4ff!important;
  -webkit-text-fill-color:#eaf4ff!important;
  background-color:#0b1728!important;
  color-scheme:dark!important;
}
.dark-theme .global-format-box select option,
.dark-theme .control-row select option{
  color:#eaf4ff!important;
  -webkit-text-fill-color:#eaf4ff!important;
  background:#0b1728!important;
}

/* Keep every editable tool field readable even when the device/browser uses
   a dark native control scheme while the approved EzyConvert UI is light. */
.tool-page input:not([type="file"]):not([type="range"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.tool-page select,
.tool-page textarea,
.tool-page .tool-input,
.tool-page .pdf-select{
  color:#132238!important;
  -webkit-text-fill-color:#132238!important;
  caret-color:#132238!important;
  background-color:#fff!important;
  color-scheme:light!important;
  opacity:1!important;
}
.tool-page select option{
  color:#132238!important;
  -webkit-text-fill-color:#132238!important;
  background:#fff!important;
}
.tool-page input::placeholder,
.tool-page textarea::placeholder{
  color:#64748b!important;
  -webkit-text-fill-color:#64748b!important;
  opacity:1!important;
}
.dark-theme .tool-page input:not([type="file"]):not([type="range"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.dark-theme .tool-page select,
.dark-theme .tool-page textarea,
.dark-theme .tool-page .tool-input,
.dark-theme .tool-page .pdf-select{
  color:#eaf4ff!important;
  -webkit-text-fill-color:#eaf4ff!important;
  caret-color:#eaf4ff!important;
  background-color:#0b1728!important;
  color-scheme:dark!important;
}
.dark-theme .tool-page select option{
  color:#eaf4ff!important;
  -webkit-text-fill-color:#eaf4ff!important;
  background:#0b1728!important;
}

/* Remove the browser's black up/down spinner controls from numeric fields. */
input[type="number"]{
  appearance:textfield!important;
  -moz-appearance:textfield!important;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button{
  -webkit-appearance:none!important;
  appearance:none!important;
  margin:0!important;
}

/* Keep the compressor's ZIP action beside the main action on desktop. */
.tool-page[data-tool-page="image-compressor"] #compressorActionsWrap{
  gap:16px!important;
  flex-wrap:wrap!important;
}
.tool-page[data-tool-page="image-compressor"] #compressorActionsWrap .compressor-zip-bottom{
  width:auto!important;
  margin:0!important;
  padding:0!important;
  clear:none!important;
  align-items:center!important;
  justify-content:center!important;
}
.tool-page[data-tool-page="image-compressor"] #compressorActionsWrap .compressor-zip-bottom.is-visible{
  display:inline-flex!important;
}
@media(max-width:640px){
  .tool-page[data-tool-page="image-compressor"] #compressorActionsWrap{
    flex-direction:column!important;
  }
  .tool-page[data-tool-page="image-compressor"] #compressorActionsWrap .compressor-zip-bottom{
    width:100%!important;
    margin:0!important;
    padding:0!important;
  }
}

/* Shared browser-processing message shown at the bottom of every tool workspace. */
.tool-browser-note{
  display:block!important;
  width:100%!important;
  margin:16px 0 0!important;
  padding:0 8px!important;
  color:#64748b!important;
  font-size:14px!important;
  font-weight:400!important;
  line-height:1.55!important;
  text-align:center!important;
}
.dark-theme .tool-browser-note{color:#a9bfd8!important}

/* Professional, consistent vector artwork for every tool card. */
.tool-card-icon,.more-tool-icon{
  font-size:0!important;
  line-height:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.tool-card-icon::before,.more-tool-icon::before{
  content:"";
  display:block;
  width:42px;
  height:42px;
  background-image:var(--ezy-tool-icon);
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  filter:drop-shadow(0 6px 9px rgba(15,33,55,.13));
}
.tool-card-icon::before{width:100%;height:100%}
a[href*="image-converter"]>.tool-card-icon,
a[href*="image-converter"]>.more-tool-icon{--ezy-tool-icon:url("tool-icons/image-converter.svg")}
a[href*="image-to-pdf"]>.tool-card-icon,
a[href*="image-to-pdf"]>.more-tool-icon{--ezy-tool-icon:url("tool-icons/image-to-pdf.svg")}
a[href*="pdf-to-image"]>.tool-card-icon,
a[href*="pdf-to-image"]>.more-tool-icon{--ezy-tool-icon:url("tool-icons/pdf-to-image.svg")}
a[href*="text-to-pdf"]>.tool-card-icon,
a[href*="text-to-pdf"]>.more-tool-icon{--ezy-tool-icon:url("tool-icons/text-to-pdf.svg")}
a[href*="pdf-to-text"]>.tool-card-icon,
a[href*="pdf-to-text"]>.more-tool-icon{--ezy-tool-icon:url("tool-icons/pdf-to-text.svg")}
a[href*="image-compressor"]>.tool-card-icon,
a[href*="image-compressor"]>.more-tool-icon{--ezy-tool-icon:url("tool-icons/image-compressor.svg")}
a[href*="image-cropper"]>.tool-card-icon,
a[href*="image-cropper"]>.more-tool-icon{--ezy-tool-icon:url("tool-icons/image-cropper.svg")}
a[href*="qr-generator"]>.tool-card-icon,
a[href*="qr-generator"]>.more-tool-icon{--ezy-tool-icon:url("tool-icons/qr-generator.svg")}
a[href*="image-resizer"]>.tool-card-icon,
a[href*="image-resizer"]>.more-tool-icon{--ezy-tool-icon:url("tool-icons/image-resizer.svg")}
a[href*="pdf-merger"]>.tool-card-icon,
a[href*="pdf-merger"]>.more-tool-icon{--ezy-tool-icon:url("tool-icons/pdf-merger.svg")}
a[href*="pdf-splitter"]>.tool-card-icon,
a[href*="pdf-splitter"]>.more-tool-icon{--ezy-tool-icon:url("tool-icons/pdf-splitter.svg")}
a[href*="pdf-page-remover"]>.tool-card-icon,
a[href*="pdf-page-remover"]>.more-tool-icon{--ezy-tool-icon:url("tool-icons/pdf-page-remover.svg")}
a[href*="pdf-compressor"]>.tool-card-icon,
a[href*="pdf-compressor"]>.more-tool-icon{--ezy-tool-icon:url("tool-icons/pdf-compressor.svg")}

.ezy-batch-toast{
  position:fixed;
  z-index:10050;
  left:50%;
  bottom:24px;
  max-width:min(92vw,640px);
  transform:translate(-50%,20px);
  opacity:0;
  pointer-events:none;
  padding:12px 18px;
  border-radius:14px;
  background:#0f2137;
  color:#fff;
  box-shadow:0 14px 36px rgba(15,33,55,.28);
  font-size:14px;
  font-weight:700;
  line-height:1.45;
  text-align:center;
  transition:opacity .2s ease,transform .2s ease;
}
.ezy-batch-toast.show{opacity:1;transform:translate(-50%,0)}

/* Keep completed actions visibly locked until the input or settings change. */
.result-locked,
.result-locked:disabled{
  background:#e2e8f0!important;
  color:#475569!important;
  border-color:#cbd5e1!important;
  box-shadow:none!important;
  opacity:1!important;
  cursor:not-allowed!important;
  transform:none!important;
}
.dark-theme .result-locked,
.dark-theme .result-locked:disabled{
  background:#26364b!important;
  color:#cbd5e1!important;
  border-color:#3b4d65!important;
}

/* Final completed-state override. These selectors intentionally match the
   higher-specificity blue action rules used by the legacy and newer tools. */
body.tool-page:not([data-new-tool]) .unified-legacy-panel #pdfConvertBtn.result-locked,
body.tool-page:not([data-new-tool]) .unified-legacy-panel #pdfToImgConvertBtn.result-locked,
body.tool-page:not([data-new-tool]) .unified-legacy-panel #textPdfConvertBtn.result-locked,
body.tool-page:not([data-new-tool]) .unified-legacy-panel #pdfToTextConvertBtn.result-locked,
body.tool-page:not([data-new-tool]) .unified-legacy-panel #cropConvertBtn.result-locked,
body.tool-page:not([data-new-tool]) .unified-legacy-panel #compressBtn.result-locked,
body.tool-page:not([data-new-tool]) .unified-legacy-panel #generateQrBtn.result-locked,
body.tool-page:not([data-new-tool]) .unified-legacy-panel #convertAllBtn.result-locked,
body.tool-page[data-tool-page="image-converter"] #fileGrid .small-btn.result-locked,
body.tool-page[data-tool-page="image-converter"] #fileGrid .small-btn.converted-btn,
body.tool-page[data-new-tool] #ntAction.result-locked,
body.tool-page .ezy-convert-action.result-locked,
body.tool-page .ezy-convert-action.result-locked:disabled{
  background:#e2e8f0!important;
  background-image:none!important;
  color:#475569!important;
  border:1px solid #cbd5e1!important;
  box-shadow:none!important;
  opacity:1!important;
  cursor:not-allowed!important;
  filter:none!important;
  transform:none!important;
}
body.dark-theme.tool-page:not([data-new-tool]) .unified-legacy-panel #pdfConvertBtn.result-locked,
body.dark-theme.tool-page:not([data-new-tool]) .unified-legacy-panel #pdfToImgConvertBtn.result-locked,
body.dark-theme.tool-page:not([data-new-tool]) .unified-legacy-panel #textPdfConvertBtn.result-locked,
body.dark-theme.tool-page:not([data-new-tool]) .unified-legacy-panel #pdfToTextConvertBtn.result-locked,
body.dark-theme.tool-page:not([data-new-tool]) .unified-legacy-panel #cropConvertBtn.result-locked,
body.dark-theme.tool-page:not([data-new-tool]) .unified-legacy-panel #compressBtn.result-locked,
body.dark-theme.tool-page:not([data-new-tool]) .unified-legacy-panel #generateQrBtn.result-locked,
body.dark-theme.tool-page:not([data-new-tool]) .unified-legacy-panel #convertAllBtn.result-locked,
body.dark-theme.tool-page[data-tool-page="image-converter"] #fileGrid .small-btn.result-locked,
body.dark-theme.tool-page[data-tool-page="image-converter"] #fileGrid .small-btn.converted-btn,
body.dark-theme.tool-page[data-new-tool] #ntAction.result-locked,
body.dark-theme.tool-page .ezy-convert-action.result-locked{
  background:#26364b!important;
  background-image:none!important;
  color:#cbd5e1!important;
  border-color:#3b4d65!important;
}

/* Keep each converted image's Download action directly beside its remove button. */
.tool-page[data-tool-page="image-converter"] #fileGrid .control-row,
.tool-page[data-tool-page="image-converter"] .file-card-actions{
  display:grid!important;
  align-items:center;
  gap:8px;
  width:100%;
}
.tool-page[data-tool-page="image-converter"] #fileGrid .control-row{
  grid-template-columns:minmax(100px,.85fr) minmax(0,1.15fr)!important;
  margin-top:0;
}
.tool-page[data-tool-page="image-converter"] .file-card-actions{
  grid-template-columns:44px minmax(0,1fr)!important;
  margin-top:12px;
}
.tool-page[data-tool-page="image-converter"] #fileGrid .control-row select,
.tool-page[data-tool-page="image-converter"] #fileGrid .control-row .small-btn,
.tool-page[data-tool-page="image-converter"] .file-card-actions .file-card-download,
.tool-page[data-tool-page="image-converter"] .file-card-actions .remove{
  width:100%!important;
  min-width:0!important;
  height:52px!important;
  min-height:52px!important;
  margin:0!important;
  box-sizing:border-box!important;
  border-radius:12px!important;
  align-items:center;
  justify-content:center;
}
.tool-page[data-tool-page="image-converter"] .file-card-actions .file-card-download{
  max-width:none!important;
  padding:0 12px;
  font-size:16px;
  line-height:1;
}
.tool-page[data-tool-page="image-converter"] .file-card-actions .remove{
  justify-self:center;
  width:42px!important;
  min-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  padding:0;
  font-size:20px;
  font-weight:500;
  line-height:1;
  border:1px solid #fecaca!important;
  border-radius:50%!important;
  background:#fff7f7!important;
  color:#ef4444!important;
  box-shadow:none!important;
}
.tool-page[data-tool-page="image-converter"] .file-card-actions .remove:hover{
  border-color:#fca5a5!important;
  background:#fff1f2!important;
}

/* Mobile file cards keep both action labels fully visible without changing the
   desktop layout or conversion flow. */
@media(max-width:560px){
  .tool-page[data-tool-page="image-converter"] #fileGrid{
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    min-width:0!important;
  }
  .tool-page[data-tool-page="image-converter"] #fileGrid .file-card{
    display:grid!important;
    grid-template-columns:56px minmax(0,1fr)!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
    padding:12px!important;
    overflow:hidden!important;
  }
  .tool-page[data-tool-page="image-converter"] #fileGrid .thumb{
    width:56px!important;
    height:56px!important;
    min-width:56px!important;
  }
  .tool-page[data-tool-page="image-converter"] #fileGrid .file-info{
    width:100%!important;
    min-width:0!important;
  }
  .tool-page[data-tool-page="image-converter"] #fileGrid .control-row{
    grid-template-columns:minmax(82px,.75fr) minmax(0,1.25fr)!important;
  }
  .tool-page[data-tool-page="image-converter"] #fileGrid .control-row select,
  .tool-page[data-tool-page="image-converter"] #fileGrid .control-row .small-btn{
    padding-right:7px!important;
    padding-left:7px!important;
    font-size:14px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .tool-page[data-tool-page="image-converter"] .file-card-actions{
    grid-template-columns:42px minmax(0,1fr)!important;
  }
  .tool-page[data-tool-page="image-converter"] .file-card-actions .file-card-download{
    padding:0 8px!important;
    font-size:14px!important;
    white-space:nowrap!important;
  }
}

/* Shared mobile containment for every tool workspace. */
@media(max-width:640px){
  body.tool-page .page,
  body.tool-page .wrap,
  body.tool-page .panel,
  body.tool-page .tools-panel,
  body.tool-page .extra-tool-panel,
  body.tool-page .new-tool-panel,
  body.tool-page .upload-box,
  body.tool-page .extra-upload-box{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  body.tool-page button,
  body.tool-page select,
  body.tool-page input,
  body.tool-page textarea{
    max-width:100%;
  }
}

/* Keep the Image Converter batch action level with the format dropdown. */
@media(min-width:901px){
  .tool-page[data-tool-page="image-converter"] #toolsPanel .quality-row .convert-all{
    align-self:flex-end!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    height:45px!important;
    padding-top:0!important;
    padding-bottom:0!important;
    line-height:1!important;
  }
}

/* Legacy tools now use the same main-action, progress and result language as
   PDF Merger while keeping every existing conversion and download handler. */
body.tool-page:not([data-new-tool]) .unified-legacy-panel .action-center{
  display:block!important;
  width:100%;
}
body.tool-page:not([data-new-tool]) .unified-legacy-panel #pdfConvertBtn,
body.tool-page:not([data-new-tool]) .unified-legacy-panel #pdfToImgConvertBtn,
body.tool-page:not([data-new-tool]) .unified-legacy-panel #textPdfConvertBtn,
body.tool-page:not([data-new-tool]) .unified-legacy-panel #pdfToTextConvertBtn,
body.tool-page:not([data-new-tool]) .unified-legacy-panel #cropConvertBtn,
body.tool-page:not([data-new-tool]) .unified-legacy-panel #compressBtn{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  max-width:none!important;
  min-height:58px!important;
  margin:18px 0 0!important;
  padding:16px 18px!important;
  border-radius:13px!important;
  font-size:19px!important;
  line-height:1.25!important;
  font-weight:800!important;
}
/* These file-based actions stay absent until a compatible file is selected.
   The ready class is added for both Browse and drag-and-drop uploads. */
body.tool-page[data-tool-page="pdf-to-image"] #pdfToImgConvertBtn:not(.ezy-upload-action-ready),
body.tool-page[data-tool-page="pdf-to-text"] #pdfToTextConvertBtn:not(.ezy-upload-action-ready),
body.tool-page[data-tool-page="image-cropper"] #cropConvertBtn:not(.ezy-upload-action-ready),
body.tool-page[data-tool-page="image-compressor"] #compressBtn:not(.ezy-upload-action-ready){
  display:none!important;
}
.ezy-shared-result{
  display:none;
  width:100%;
  margin:18px 0 0;
  padding:16px 18px;
  border:1px solid #bceadf;
  border-radius:16px;
  background:#effcf8;
  color:#176653;
  box-sizing:border-box;
}
.ezy-shared-result.is-ready{
  display:block;
  animation:ezyProgressReveal .24s ease both;
}
.ezy-shared-result-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.ezy-shared-result-copy{
  min-width:0;
}
.ezy-shared-result strong{
  display:block;
  font-size:15px;
  line-height:1.35;
  color:#176653;
}
.ezy-shared-result small{
  display:block;
  margin-top:4px;
  color:#3d7d6e;
  font-size:13px;
  line-height:1.4;
}
.ezy-shared-result .ezy-shared-download{
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  width:auto!important;
  min-width:118px;
  min-height:48px;
  margin:0!important;
  padding:12px 17px!important;
  border:0!important;
  border-radius:13px!important;
  background:#18b996!important;
  background-image:none!important;
  color:#fff!important;
  box-shadow:0 9px 20px rgba(24,185,150,.23)!important;
  font-family:inherit;
  font-size:16px!important;
  font-weight:800!important;
  line-height:1!important;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease!important;
}
.ezy-shared-result.is-ready .ezy-shared-download{
  display:inline-flex!important;
}
.ezy-shared-result .ezy-shared-download:hover{
  transform:translateY(-2px)!important;
  box-shadow:0 16px 32px rgba(24,185,150,.28)!important;
}
body.dark-theme.tool-page .ezy-shared-result{
  border-color:rgba(45,212,191,.26);
  background:#0c2c2b;
}
body.dark-theme.tool-page .ezy-shared-result strong{color:#ccfbf1}
body.dark-theme.tool-page .ezy-shared-result small{color:#99f6e4}
@media(max-width:620px){
  .ezy-shared-result-row{
    align-items:flex-start;
    flex-direction:column;
  }
  .ezy-shared-result .ezy-shared-download{
    width:100%!important;
  }
}

/* Legal popups: white scroll thumb and a fully frozen background. */
.legal-modal-body{
  scrollbar-width:thin;
  scrollbar-color:#fff rgba(15,23,42,.24);
  overscroll-behavior:contain;
}
.legal-modal-body::-webkit-scrollbar{width:11px}
.legal-modal-body::-webkit-scrollbar-track{
  background:rgba(15,23,42,.24);
  border-radius:999px;
}
.legal-modal-body::-webkit-scrollbar-thumb{
  background:#fff;
  border:1px solid rgba(15,23,42,.22);
  border-radius:999px;
  box-shadow:0 1px 4px rgba(15,23,42,.18);
}
html:has(.legal-modal-overlay.active){overflow:hidden!important}
body.legal-modal-open{
  position:fixed!important;
  top:var(--ezy-legal-scroll-offset,0)!important;
  right:0!important;
  left:0!important;
  width:100%!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
body.legal-modal-open .page>.wrap{
  pointer-events:none!important;
  user-select:none!important;
}
body.legal-modal-open .legal-modal-overlay{
  pointer-events:auto!important;
  touch-action:none;
}
body.legal-modal-open .legal-modal-body{
  pointer-events:auto!important;
  touch-action:pan-y;
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* Scroll-performance fix: preserve the approved backgrounds while avoiding
   full-page fixed-gradient and backdrop-blur repaints on every scroll frame. */
html,
body{
  background-attachment:scroll!important;
}
.site-nav,
.upload-box,
.extra-tool-panel,
.tools-panel,
.tool-guide-card,
.related-faq-card,
.more-tools-panel,
.legal-page,
.home-detail-panel,
.why-panel,
.faq-section,
.more-tools-jump{
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

/* Skip below-the-fold rendering work until it nears the viewport.
   Intrinsic sizing preserves the current layout while reducing first-paint work. */
@supports (content-visibility:auto){
  body.home-page .home-detail-panel,
  body.home-page .why-panel,
  body.home-page .faq-section,
  body.tool-page .tool-page-help,
  body .site-footer{
    content-visibility:auto;
    contain-intrinsic-size:auto 720px;
  }
}

/* Keep standalone tool Guide/FAQ cards clean: the previous drop shadow and
   backdrop blur overlapped at the lower corners and center gap as dark patches. */
body.tool-page .tool-page-help .tool-guide-card,
body.tool-page .tool-page-help .related-faq-card{
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

/* Responsive AdSense-ready spacing.
   Zones are injected only for configured ad unit IDs, so empty/fake ad boxes
   never appear on the production site before AdSense activation. */
.ezy-ad-zone{
  width:min(100%,970px);
  margin:48px auto;
  padding:0 16px;
  clear:both;
  text-align:center;
  overflow:visible;
  contain:layout style;
}
.ezy-ad-label{
  margin:0 0 8px;
  color:#718096;
  font-size:10px;
  font-weight:700;
  line-height:1;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.ezy-ad-shell{
  display:flex;
  width:100%;
  min-width:300px;
  min-height:90px;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.ezy-ad-shell>.adsbygoogle{
  width:100%;
  min-height:90px;
}
.ezy-ad-zone ins.adsbygoogle[data-ad-status="unfilled"]{
  display:none!important;
}
.ezy-ad-zone--preview .ezy-ad-shell{
  border:1px dashed #b8c7dc;
  border-radius:14px;
  background:rgba(255,255,255,.55);
}
.ezy-ad-preview{
  color:#718096;
  font-size:13px;
  font-weight:700;
}
.dark-theme .ezy-ad-label,
.dark-theme .ezy-ad-preview{
  color:#9fb2ca;
}
.dark-theme .ezy-ad-zone--preview .ezy-ad-shell{
  border-color:rgba(207,228,255,.25);
  background:rgba(12,26,44,.55);
}
@media(max-width:767px){
  .ezy-ad-zone{
    width:100%;
    margin:36px auto;
    padding:0 4px;
  }
  .ezy-ad-shell,
  .ezy-ad-shell>.adsbygoogle{
    min-width:0;
    min-height:100px;
  }
}

/* Shared conversion feedback: every tool now reveals its enabled action with
   the same light fade and uses the Merger/Splitter processing language. */
@keyframes ezyActionFadeIn{
  from{opacity:0;transform:translateY(8px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes ezyActionSpin{
  to{transform:rotate(360deg)}
}
@keyframes ezyProgressReveal{
  from{opacity:0;transform:translateY(7px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes ezyProgressShimmer{
  from{transform:translateX(-120%)}
  to{transform:translateX(220%)}
}
.tool-page .ezy-convert-action{
  transition:filter .18s ease,box-shadow .18s ease,opacity .18s ease,transform .18s ease;
}
.tool-page .ezy-convert-action.ezy-action-ready{
  animation:ezyActionFadeIn .28s cubic-bezier(.2,.75,.25,1) both;
}
.tool-page .ezy-convert-action.ezy-processing{
  cursor:wait!important;
}
.tool-page .ezy-convert-action.ezy-processing:not(.result-locked)::before{
  content:"";
  display:inline-block;
  width:17px;
  height:17px;
  margin-right:9px;
  border:2px solid rgba(255,255,255,.46);
  border-top-color:#fff;
  border-radius:50%;
  vertical-align:-3px;
  animation:ezyActionSpin .7s linear infinite;
}

/* Bring legacy progress indicators in line with the newer PDF tools while
   preserving their existing IDs, scripts and percentage updates. */
.tool-page .extra-progress,
.tool-page .progress-wrap{
  padding:14px!important;
  border:1px solid #e3eaf4!important;
  border-radius:15px!important;
  background:#f7f9fd!important;
}
.tool-page .extra-progress[style*="display: block"],
.tool-page .progress-wrap[style*="display: block"],
.tool-page .new-progress.active{
  animation:ezyProgressReveal .24s ease both;
}
.tool-page .extra-progress-track,
.tool-page .progress-track,
.tool-page .new-progress-track{
  height:10px!important;
  border-radius:999px!important;
  background:#e1e8f2!important;
  overflow:hidden!important;
}
.tool-page .extra-progress-fill,
.tool-page .progress-fill,
.tool-page .new-progress-bar{
  position:relative;
  height:100%!important;
  border-radius:inherit!important;
  overflow:hidden;
  background:linear-gradient(90deg,#3478ff,#18b996)!important;
  transition:width .2s ease!important;
}
.tool-page .extra-progress-fill::after,
.tool-page .progress-fill::after,
.tool-page .new-progress-bar::after{
  content:"";
  position:absolute;
  inset:0;
  width:38%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent);
  animation:ezyProgressShimmer 1.15s ease-in-out infinite;
}
.tool-page .extra-progress-text,
.tool-page .progress-text,
.tool-page .new-progress-text{
  margin-top:8px!important;
  color:#52637a!important;
  font-size:13px!important;
  font-weight:700!important;
  line-height:1.35;
  text-align:center!important;
}
.dark-theme.tool-page .extra-progress,
.dark-theme.tool-page .progress-wrap{
  border-color:rgba(219,234,254,.14)!important;
  background:#0b1728!important;
}
.dark-theme.tool-page .extra-progress-track,
.dark-theme.tool-page .progress-track,
.dark-theme.tool-page .new-progress-track{
  background:#1c2d43!important;
}
.dark-theme.tool-page .extra-progress-text,
.dark-theme.tool-page .progress-text,
.dark-theme.tool-page .new-progress-text{
  color:#c6d7ea!important;
}
@media(prefers-reduced-motion:reduce){
  .tool-page .ezy-convert-action.ezy-action-ready,
  .tool-page .extra-progress[style*="display: block"],
  .tool-page .progress-wrap[style*="display: block"],
  .tool-page .new-progress.active{
    animation:none!important;
  }
  .tool-page .extra-progress-fill::after,
  .tool-page .progress-fill::after,
  .tool-page .new-progress-bar::after{
    display:none;
  }
}

/* Image Converter batch result: match the shared tool result bar and keep it
   directly below the main Converted action, before the converted file cards. */
body.tool-page[data-tool-page="image-converter"] #toolsPanel #zipPanel{
  width:100%!important;
  margin:0 0 22px!important;
  padding:16px 18px!important;
  border:1px solid #bceadf!important;
  border-radius:16px!important;
  background:#effcf8!important;
  box-shadow:none!important;
  box-sizing:border-box!important;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  text-align:left!important;
}
body.tool-page[data-tool-page="image-converter"] #toolsPanel #zipPanel[style*="display: block"]{
  display:flex!important;
  animation:ezyProgressReveal .24s ease both;
}
body.tool-page[data-tool-page="image-converter"] #toolsPanel #zipPanel p{
  order:0;
  min-width:0;
  margin:0!important;
  color:#3d7d6e!important;
  font-size:13px!important;
  font-weight:600!important;
  line-height:1.4!important;
  text-align:left!important;
}
body.tool-page[data-tool-page="image-converter"] #toolsPanel #downloadZipBtn{
  order:1;
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  width:190px!important;
  min-width:190px!important;
  min-height:48px;
  margin:0!important;
  padding:12px 17px!important;
  border:0!important;
  border-radius:13px!important;
  background:#18b996!important;
  color:#fff!important;
  box-shadow:0 9px 20px rgba(24,185,150,.23)!important;
  font-size:16px!important;
  font-weight:800!important;
  line-height:1!important;
  white-space:nowrap;
}
body.tool-page[data-tool-page="image-converter"] #toolsPanel #downloadZipBtn:hover{
  transform:translateY(-2px)!important;
  box-shadow:0 16px 32px rgba(24,185,150,.28)!important;
}
body.dark-theme.tool-page[data-tool-page="image-converter"] #toolsPanel #zipPanel{
  border-color:rgba(45,212,191,.26)!important;
  background:#0c2c2b!important;
}
body.dark-theme.tool-page[data-tool-page="image-converter"] #toolsPanel #zipPanel p{
  color:#99f6e4!important;
}
@media(max-width:620px){
  body.tool-page[data-tool-page="image-converter"] #toolsPanel #zipPanel{
    align-items:stretch;
    flex-direction:column;
  }
  body.tool-page[data-tool-page="image-converter"] #toolsPanel #downloadZipBtn{
    width:100%!important;
    min-width:0!important;
  }
}


/* MOBILE FAST-SCROLL STABILITY FIX (2026-07-28)
   Keeps the same layout and tool behavior while avoiding Android/iOS repaint
   glitches caused by fixed backgrounds, large backdrop filters and deferred
   section painting during a fast swipe. */
@media (max-width:900px), (pointer:coarse){
  html,body{
    background-attachment:scroll!important;
    scroll-behavior:auto!important;
    overflow-x:clip!important;
  }
  .site-nav,
  .upload-box,
  .extra-tool-panel,
  .tools-panel,
  .tool-guide-card,
  .related-faq-card,
  .more-tools-panel,
  .legal-page,
  .home-detail-panel,
  .why-panel,
  .faq-section,
  .quality-content,
  .more-tools-jump,
  .legal-modal-overlay{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
  .tool-page-help,
  .quality-content,
  .more-tools-panel,
  .site-footer,
  .why-panel,
  .faq-section{
    content-visibility:visible!important;
    contain:none!important;
  }
  .tool-card,
  .more-tool-card,
  .more-tools-jump,
  .nav-links a,
  button,
  a{
    transition-duration:.01ms!important;
  }
}
@supports (width:100dvw){
  @media (max-width:900px), (pointer:coarse){
    .footer.site-footer{
      width:100dvw!important;
      margin-left:calc(50% - 50dvw)!important;
      margin-right:calc(50% - 50dvw)!important;
    }
  }
}


/* EAGER LOWER-SECTION PAINT / FOOTER CHECKERBOARD FIX — targeted v5 */
html body.home-page .home-detail-panel,
html body.home-page .why-panel,
html body.home-page .faq-section,
html body.tool-page .tool-page-help,
html body .site-footer,
html body .footer.site-footer,
html body .footer-grid,
html body .footer-brand-block,
html body .footer-link-group,
html body .footer-bottom{
  content-visibility:visible!important;
  contain:none!important;
  contain-intrinsic-size:0!important;
}
html body .footer.site-footer{
  -webkit-transform:none!important;
  transform:none!important;
  -webkit-backface-visibility:visible!important;
  backface-visibility:visible!important;
  isolation:auto!important;
  will-change:auto!important;
  -webkit-filter:none!important;
  filter:none!important;
}
@media (max-width:1200px), (pointer:coarse){
  html body.home-page .home-detail-card,
  html body.home-page .faq-item,
  html body.home-page .why-card,
  html body .footer-grid,
  html body .footer-brand-block,
  html body .footer-link-group,
  html body .footer-bottom{
    -webkit-transform:none!important;
    transform:none!important;
    -webkit-backface-visibility:visible!important;
    backface-visibility:visible!important;
    will-change:auto!important;
  }
}
