:root{--compress-tool-shadow:0 10px 30px rgb(15 23 42 / .06)}
.compress-page{padding:clamp(58px,7vw,92px) 0 30px;background:var(--color-bg);color:var(--color-text)}
.compress-wrap{width:min(calc(100% - 40px),var(--container-width));margin-inline:auto}
.compress-hero{width:100%;max-width:none;margin:0 0 34px;text-align:left}
.compress-kicker{display:inline-flex;padding:8px 14px;border-radius:10px;background:var(--color-primary-soft);color:var(--color-primary);font-size:14px;font-weight:800;line-height:1.2}
.compress-hero h1{margin:18px 0 12px;font-size:clamp(2.35rem,5vw,4rem);line-height:1.05;letter-spacing:-.05em;color:var(--color-text);max-width:none}
.compress-hero p{max-width:none;width:100%;margin:0;color:var(--color-text-muted);font-size:1.08rem;line-height:1.7}
.compress-tool{width:100%;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;position:relative}
body:has(.compress-tool .upload-box.hidden) .compress-tool{border:2px solid var(--color-primary);background:var(--color-surface);box-shadow:var(--compress-tool-shadow)}
.upload-box{margin:0;min-height:270px;padding:34px;border:2px dashed var(--color-primary);border-radius:0;background:var(--color-surface);display:grid;place-items:center;text-align:center;transition:background-color .25s ease,border-color .25s ease,border-style .15s ease,box-shadow .25s ease,transform .25s ease}
.upload-box:hover,.upload-box:focus-within{border-style:solid;background:var(--color-primary-soft);box-shadow:0 0 0 5px var(--color-primary-soft),0 14px 32px rgb(15 23 42 / .08);transform:translateY(-1px)}
.upload-box.dragover{border-style:solid;background:var(--color-primary-soft);border-color:var(--color-primary-hover);box-shadow:0 0 0 5px var(--color-primary-soft),0 14px 32px rgb(15 23 42 / .1);transform:translateY(-2px)}
.upload-box p{margin:0 0 16px;color:var(--color-text-muted);font-size:1.02rem}
.upload-btn{width:min(320px,100%);min-height:86px;padding:16px 30px;border:0;border-radius:8px;font:inherit;font-size:2rem;font-weight:800;line-height:1;letter-spacing:-.03em;cursor:pointer;background:var(--color-primary);color:var(--color-text-inverse);box-shadow:0 8px 20px rgb(15 23 42 / .12);transition:background-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}
.upload-btn:hover{background:var(--color-primary-hover);transform:translateY(-3px) scale(1.02);box-shadow:0 14px 28px rgb(15 23 42 / .18)}
.upload-btn:active{transform:translateY(0) scale(.99)}
.secure-note{margin-top:14px;color:var(--color-text-muted);font-size:.9rem}
.compress-container{padding:18px 22px 0}
.compress-container.hidden,.cmp.hidden,.actions.hidden{display:none}
.compress-controls{display:flex;align-items:center;justify-content:center;gap:15px;flex-wrap:wrap;margin:0 0 18px;padding:14px;border:0;border-radius:0;background:transparent;box-shadow:none}
.compress-controls label{font-weight:800;color:var(--color-text)}
#compressionRange{width:200px;accent-color:var(--color-primary)}
.level{min-width:52px;font-weight:800;color:var(--color-primary);text-align:right}
.compress-controls button{border:1px solid var(--color-primary);border-radius:8px;padding:12px 20px;font:inherit;font-size:14px;font-weight:800;cursor:pointer;background:var(--color-primary);color:var(--color-text-inverse)}
.compress-controls button:hover{background:var(--color-primary-hover)}
.compress-controls button:disabled{opacity:.45;background:var(--color-border-strong);color:var(--color-text-muted);cursor:not-allowed}
.secondary-btn{background:var(--color-surface)!important;color:var(--color-text)!important;border:1px solid var(--color-primary)!important;border-radius:8px!important}
.secondary-btn:hover{background:var(--color-primary-soft)!important;color:var(--color-primary)!important;border-color:var(--color-primary)!important}
.cmp{margin:0;border:1px solid var(--color-primary);border-radius:0;background:var(--color-surface);padding:16px;box-shadow:none}
.file-list{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:16px;max-width:none;margin:0}
.file-card{width:160px;flex:0 0 160px;min-width:160px;box-sizing:border-box;background:var(--color-bg);padding:12px;border:1px solid var(--color-border);border-radius:14px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow-xs);position:relative}
.file-card canvas{width:100%;height:140px;object-fit:contain;background:var(--color-surface-muted);border-radius:9px;margin-top:8px}
.file-info{text-align:left;margin-bottom:5px;padding-right:22px}
.file-info .filename{font-weight:800;color:var(--color-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;max-width:70%}
.remove-button{position:absolute;top:8px;right:8px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:50%;width:28px;height:28px;cursor:pointer;font-weight:900;z-index:2}
.remove-button:hover{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary)}
.file-info .compressed-size{display:block;margin-top:6px;font-size:.82rem;color:var(--color-success);font-weight:800}
.download-btn{margin-top:8px;padding:9px;border:none;border-radius:9px;background:var(--color-primary);color:var(--color-text-inverse);cursor:pointer;font-size:12px;font-weight:800;width:100%}
.download-btn:hover{background:var(--color-primary-hover)}
.password-box{margin-top:8px;text-align:left}.password-box input{width:100%;box-sizing:border-box;padding:8px;border:1px solid var(--color-border);border-radius:7px;margin-bottom:5px}.password-box button{width:100%;padding:8px;background:var(--color-primary);border:none;border-radius:7px;color:var(--color-text-inverse);cursor:pointer}.password-error{color:var(--color-danger);font-size:12px;margin-top:3px}
.loading-container{display:none;justify-content:center;align-items:center;gap:10px;margin:20px;color:var(--color-text-muted)}
.loading-spinner{width:20px;height:20px;border:3px solid var(--color-primary-soft);border-top:3px solid var(--color-primary);border-radius:50%;animation:compressSpin 1s linear infinite}@keyframes compressSpin{100%{transform:rotate(360deg)}}
.flash-message{margin-top:12px;font-weight:800}.flash-message.success{color:var(--color-success)}.flash-message.error{color:var(--color-danger)}
.actions{overflow:hidden;position:relative;width:100%;margin:0;border:1px solid var(--color-primary);border-radius:0;background:var(--color-surface);display:flex;justify-content:space-between;gap:10px;padding:10px;box-sizing:border-box}
.actions button{padding:13px 20px;border:1px solid var(--color-primary);border-radius:8px;cursor:pointer;font:inherit;font-size:14px;font-weight:800;background:var(--color-primary);color:var(--color-text-inverse)}
.actions button:hover{background:var(--color-primary-hover)}.actions button:disabled{opacity:.45;cursor:not-allowed}
.compress-note{position:absolute;top:100%;left:0;width:100%;margin:10px 0 0;padding:0;color:var(--color-text-muted);font-size:.9rem;line-height:1.6;text-align:left;box-sizing:border-box}
.tool-shared-sections{width:100%;margin-top:0}.tool-shared-sections .services-section,.tool-shared-sections .dozni-howto-section,.tool-shared-sections .dozni-about-section,.tool-shared-sections .faq-section{width:100%;margin-inline:0;background:transparent;border:0;box-shadow:none}
body:has(.compress-tool) .generic-feature-sections{display:none!important}
body:has(.compress-tool) .dozni-about-section{display:none!important}
body:has(.compress-tool) .generic-feature-sections{visibility:hidden!important;height:0!important;overflow:hidden!important;margin:0!important;padding:0!important}
@media(max-width:900px){.compress-info-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.compress-page{padding:42px 0 24px}.compress-wrap{width:min(calc(100% - 28px),var(--container-width))}.compress-hero{width:100%;max-width:none}.compress-tool{margin:0 0 48px}.upload-box{min-height:230px;padding:26px 18px}.upload-btn{width:min(100%,340px);min-height:72px;font-size:1.55rem}.compress-container{padding:18px 12px 0}.compress-controls{align-items:stretch;margin-bottom:14px}.compress-controls input[type=range]{width:100%;flex-basis:100%}.cmp{padding:12px}.file-list{gap:12px}.file-card{width:min(100%,180px);flex-basis:min(100%,180px);min-width:0}.file-card canvas{height:160px}.actions{padding:10px;flex-direction:column}.actions button{width:100%}.compress-note{font-size:.86rem;line-height:1.55}.tool-shared-sections .services-section,.tool-shared-sections .dozni-howto-section,.tool-shared-sections .dozni-about-section,.tool-shared-sections .faq-section{width:100%;margin-inline:0}}

/* The shared component uses one large PDF SVG on the right of the five-step list. */
.compress-pdf-specific .dozni-howto-copy{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:clamp(30px,6vw,90px);align-items:center;font-family:var(--font-sans)}
.compress-pdf-specific .dozni-howto-art{grid-column:2!important;grid-row:1!important;display:grid!important;place-items:center;align-self:center;color:var(--color-text)!important;position:static!important;width:auto;height:auto;margin:0}
.compress-pdf-specific .dozni-howto-art svg{width:min(230px,100%);height:auto;display:block}
@media(max-width:900px){.compress-pdf-specific .dozni-howto-copy{grid-template-columns:minmax(0,1fr) 190px;gap:28px}.compress-pdf-specific .dozni-howto-art svg{width:170px}}
@media(max-width:650px){.compress-pdf-specific .dozni-howto-copy{grid-template-columns:1fr;gap:28px}.compress-pdf-specific .dozni-howto-art{grid-column:1!important;grid-row:auto!important;order:2;padding-top:8px}.compress-pdf-specific .dozni-howto-art svg{width:110px}}

/* Shared site typography: use the same family and token scale for the compressor's content sections. */
.compress-page,.compress-page button,.compress-page input,.compress-page textarea,.compress-page select,.compress-page h1,.compress-page h2,.compress-page h3,.compress-page p,.compress-page label{font-family:var(--font-sans)}
.compress-pdf-specific .dozni-section-title{font-size:clamp(var(--text-3xl),4vw,var(--text-5xl));line-height:var(--line-tight);font-weight:700}
.compress-pdf-specific .dozni-section-text,.compress-pdf-specific .dozni-howto-step p,.compress-pdf-specific .compress-info-card p{font-size:var(--text-lg);line-height:var(--line-relaxed)}
.compress-pdf-specific .compress-info-card h3{font-size:var(--text-xl);line-height:var(--line-snug);font-weight:700}
