/*
Theme Name: Heavy Duty Services Theme
Theme URI: https://heavydutyservices.com
Author: Joe Stillion
Description: A minimal, typographic theme for Heavy Duty Services.
Version: 5.1.0
License: GPL v2 or later
Text Domain: heavy-duty-services
*/

@font-face {
    font-family: 'GNUTypewriter';
    src: url('assets/fonts/gtw.ttf') format('truetype');
    font-weight: normal; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'TypewriterLight';
    src: url('assets/fonts/Typewriter_Light.ttf') format('truetype');
    font-weight: normal; font-style: normal; font-display: swap;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{font-size:16px;-webkit-font-smoothing:antialiased;}
body{
    font-family:'GNUTypewriter','Courier New',monospace;
    background-color:#eaedef;
    background-image:url('assets/images/SQ_Background-Paper.png');
    background-size:cover;background-repeat:no-repeat;
    background-attachment:fixed;background-position:center;
    color:#1a1a1a;line-height:1.5;min-height:100vh;
}
.hds-font-gnu{font-family:'GNUTypewriter','Courier New',monospace;text-transform:uppercase;}
.hds-font-light{font-family:'TypewriterLight','Courier New',monospace;text-transform:none;}
a{color:inherit;text-decoration:none;}
a:hover{opacity:0.7;}
img{max-width:100%;height:auto;display:block;}

/* === PAGE FADE-IN (destination pages) === */
.hds-fadein-overlay{
    position:fixed;top:0;left:0;width:100%;height:100%;
    background:#eaedef;
    background-image:url('assets/images/SQ_Background-Paper.png');
    background-size:cover;background-position:center;
    z-index:99990;pointer-events:none;
}
.hds-fadein-overlay.hds-fading-in{
    opacity:0;
}

/* Staggered: elements start invisible, fade in sequentially */
.hds-stagger-hidden{opacity:0;}
.hds-stagger-show{animation:hds-stagger-fade 0.6s ease-out forwards;}
@keyframes hds-stagger-fade{0%{opacity:0;transform:translateY(8px);}100%{opacity:1;transform:translateY(0);}}

/* === PAGE TRANSITION (lander exit) === */
.hds-page-transition{
    position:fixed;top:0;left:0;width:100%;height:100%;
    background:#eaedef;
    background-image:url('assets/images/SQ_Background-Paper.png');
    background-size:cover;background-position:center;
    z-index:99999;pointer-events:none;opacity:0;
    transition-property:opacity;
}
.hds-page-transition.hds-transitioning{opacity:1;pointer-events:all;}

/* === INVERT INTRO === */
.hds-invert-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;z-index:9998;pointer-events:none;opacity:1;}
.hds-invert-overlay.hds-fade-out{opacity:0;}

/* === LANDER === */
.hds-lander{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem;position:relative;z-index:1;}
.hds-lander__link{text-align:center;transition:opacity 0.3s ease;}
.hds-lander__link:hover{opacity:0.65;}
.hds-lander__logo{max-width:480px;width:80vw;height:auto;display:block;}

/* === APPEAR ANIMATIONS === */
@keyframes hds-fade-in{0%{opacity:0}100%{opacity:1}}
@keyframes hds-slide-in{0%{transform:translateX(var(--slide-dist));opacity:0}100%{transform:translateX(0);opacity:1}}
@keyframes hds-scale-up{0%{transform:scale(var(--scale-from));opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes hds-drop-in{0%{transform:translateY(var(--drop-dist));opacity:0}60%{transform:translateY(5px);opacity:1}80%{transform:translateY(-3px)}100%{transform:translateY(0);opacity:1}}
@keyframes hds-blur-in{0%{filter:blur(var(--blur-amount));opacity:0}100%{filter:blur(0);opacity:1}}
.hds-lander__logo.hds-animating{animation-fill-mode:both;animation-iteration-count:1;}

/* === NOTICE ANIMATIONS (no opacity changes — logo already visible) === */
@keyframes hds-jiggle-h{0%,100%{transform:translateX(0)}15%{transform:translateX(calc(-1*var(--jig-x)))}30%{transform:translateX(var(--jig-x))}45%{transform:translateX(calc(-.6*var(--jig-x)))}60%{transform:translateX(calc(.4*var(--jig-x)))}75%{transform:translateX(calc(-.2*var(--jig-x)))}}
@keyframes hds-jiggle-v{0%,100%{transform:translateY(0)}15%{transform:translateY(calc(-1*var(--jig-y)))}30%{transform:translateY(var(--jig-y))}45%{transform:translateY(calc(-.6*var(--jig-y)))}60%{transform:translateY(calc(.4*var(--jig-y)))}75%{transform:translateY(calc(-.2*var(--jig-y)))}}
@keyframes hds-flash{0%,100%{opacity:1}25%{opacity:var(--flash-low)}50%{opacity:1}75%{opacity:var(--flash-low)}}
@keyframes hds-ink-bleed{0%,100%{filter:drop-shadow(0 0 0 rgba(0,0,0,0))}50%{filter:drop-shadow(0 0 var(--ink-spread) rgba(0,0,0,var(--ink-opacity)))}}
@keyframes hds-emboss-pulse{0%,100%{filter:drop-shadow(1px 1px 0 rgba(0,0,0,.1)) drop-shadow(-1px -1px 0 rgba(255,255,255,.05))}50%{filter:drop-shadow(var(--emb-x) var(--emb-y) 1px rgba(0,0,0,var(--emb-opacity))) drop-shadow(calc(-1*var(--emb-x)) calc(-1*var(--emb-y)) 1px rgba(255,255,255,.1))}}
@keyframes hds-pop-in{0%,100%{transform:scale(1)}50%{transform:scale(var(--pop-scale))}}
@keyframes hds-vignette-pulse{0%,100%{box-shadow:inset 0 0 40px rgba(0,0,0,0)}50%{box-shadow:inset 0 0 var(--vig-size) rgba(0,0,0,var(--vig-opacity))}}
@keyframes hds-dust{0%{background-position:0% 0%}100%{background-position:100% 100%}}
@keyframes hds-sepia-pulse{0%,100%{filter:sepia(0) contrast(1)}50%{filter:sepia(var(--sepia-amount)) contrast(var(--sepia-contrast))}}
.hds-lander__link.hds-notice-vignette{display:inline-block;padding:20px;}

/* === TOP-LEFT MENU (viewport positioned) === */
.hds-nav{position:fixed;top:0;left:0;z-index:100;transition:opacity .3s ease;}
.hds-nav__list{list-style:none;display:flex;gap:.15em;}
.hds-nav__item a{
    letter-spacing:.1em;
    text-decoration:none;transition:opacity .3s ease;
}
.hds-nav__item a:hover{opacity:.6;}
.hds-nav__separator{}

/* === PAGES (shared layout) === */
.hds-page{
    max-width:1000px;margin:0 auto;padding:4rem 2rem 3rem;
    min-height:100vh;display:flex;flex-direction:column;align-items:center;
    position:relative;
    will-change:transform;
}

/* Gallery */
.hds-gallery{width:100%;display:flex;justify-content:center;margin-bottom:0;}
.hds-gallery__container{position:relative;overflow:hidden;cursor:pointer;border:1px solid rgba(0,0,0,.08);margin:0 auto;}
.hds-gallery__container img{width:100%;height:100%;object-fit:cover;display:block;}
.hds-gallery__slide{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;transition:opacity .4s ease;}
.hds-gallery__slide.active{opacity:1;}
.hds-gallery__arrow{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff;font-size:1.8rem;cursor:pointer;z-index:10;padding:.5rem;opacity:0;transition:opacity .3s ease;text-shadow:0 1px 4px rgba(0,0,0,.5);font-family:'GNUTypewriter',monospace;line-height:1;}
.hds-gallery__container:hover .hds-gallery__arrow{opacity:1;}
.hds-gallery__arrow:hover{opacity:1!important;}
.hds-gallery__arrow--prev{left:12px;}
.hds-gallery__arrow--next{right:12px;}

/* Featured Image (generic pages) */
.hds-featured{width:100%;display:flex;justify-content:center;margin-bottom:0;}
.hds-featured__container{position:relative;overflow:hidden;border:1px solid rgba(0,0,0,.08);margin:0 auto;}
.hds-featured__container img{width:100%;height:100%;object-fit:cover;display:block;}

/* Lightbox */
.hds-lightbox{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.9);z-index:9999;cursor:pointer;justify-content:center;align-items:center;}
.hds-lightbox.active{display:flex;}
.hds-lightbox img{max-width:90vw;max-height:90vh;object-fit:contain;}

/* Content Gallery Block (shortcode) */
.hds-cgallery-wrap{margin:2rem 0;}
.hds-cgallery{margin:0 auto;}
.hds-cgallery .hds-gallery__slide{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;transition:opacity .4s ease;}
.hds-cgallery .hds-gallery__slide.active{opacity:1;}
.hds-cgallery .hds-gallery__arrow{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff;font-size:1.8rem;cursor:pointer;z-index:10;padding:.5rem;opacity:0;transition:opacity .3s ease;text-shadow:0 1px 4px rgba(0,0,0,.5);font-family:'GNUTypewriter',monospace;line-height:1;}
.hds-cgallery:hover .hds-gallery__arrow{opacity:1;}
.hds-cgallery .hds-gallery__arrow--prev{left:12px;}
.hds-cgallery .hds-gallery__arrow--next{right:12px;}

/* Below-Gallery Logo */
.hds-below-logo{width:100%;max-width:520px;margin-bottom:0;position:relative;}
.hds-below-logo__inner{position:relative;}
.hds-below-logo__inner img{display:block;height:auto;}

/* Content */
.hds-content{max-width:520px;width:100%;flex:1;}
.hds-content__heading{font-weight:normal;letter-spacing:.12em;margin-bottom:1.2rem;line-height:1.4;}
.hds-content__body{line-height:1.65;letter-spacing:.06em;max-width:480px;}
.hds-content__body p{margin-bottom:1.2rem;}
.hds-content__body a{transition:opacity .3s ease;}
.hds-content__body a:hover{opacity:.6;}
/* Override WP Gutenberg preset font-sizes inside blog cards */
.hds-blog-card .hds-content__body [class*="has-"][class*="-font-size"],
.hds-vert-card .hds-content__body [class*="has-"][class*="-font-size"]{font-size:inherit!important;}

/* Clipboard toast notification */
.hds-clip-toast{
    position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
    background:rgba(0,0,0,.88);color:#fff;
    padding:1.8rem 3rem;border-radius:6px;
    font-family:'GNUTypewriter','Courier New',monospace;
    text-transform:uppercase;letter-spacing:.08em;font-size:.85rem;
    z-index:10000;
    opacity:0;visibility:hidden;
    transition:opacity .6s ease;
    text-align:center;max-width:90vw;
    display:flex;align-items:center;gap:20px;
    box-shadow:0 4px 20px rgba(0,0,0,.3);
}
.hds-clip-toast-text{flex:1;}
.hds-clip-toast-close{
    background:none;border:none;color:#fff;font-size:1.4rem;
    cursor:pointer;padding:0;line-height:1;opacity:.7;
    transition:opacity .2s;
}
.hds-clip-toast-close:hover{opacity:1;}

/* Footer Links — viewport positioned */
.hds-footer-wrap{
    position:fixed;z-index:65;
    pointer-events:none;
}
.hds-footer-wrap .hds-footer__links{
    pointer-events:auto;
    letter-spacing:.1em;
    white-space:nowrap;
}
.hds-footer__links a{text-decoration:none;transition:opacity .3s ease;}
.hds-footer__links a:hover{opacity:.6;}
.hds-footer__links span.separator{margin:0 .15em;}

/* === BLOG CAROUSEL === */
body.blog.hds-layout-carousel,body.home:not(.page).hds-layout-carousel{overflow:hidden;}
.hds-blog-carousel{
    position:relative;width:100vw;height:100vh;overflow:hidden;
}
.hds-blog-track{
    display:flex;flex-direction:row;flex-wrap:nowrap;
    height:100%;will-change:transform;
}
.hds-blog-card{
    flex:0 0 auto;
    height:100vh;overflow:hidden;
    user-select:none;-webkit-user-select:none;
    cursor:pointer;
    transition:opacity .3s ease;
}
.hds-blog-card--active{
    overflow-y:auto;overflow-x:hidden;
    user-select:auto;-webkit-user-select:auto;
    cursor:default;
    scrollbar-width:none;-ms-overflow-style:none;
}
.hds-blog-card--active::-webkit-scrollbar{display:none;}
.hds-blog-card__inner{
    max-width:580px;margin:0 auto;padding:4rem 2rem 3rem;
    min-height:100%;display:flex;flex-direction:column;align-items:center;
    position:relative;
}
.hds-blog-card .hds-featured{width:100%;display:flex;justify-content:center;}
.hds-blog-img-container{
    position:relative;overflow:hidden;border:1px solid rgba(0,0,0,.08);margin:0 auto;cursor:pointer;
}
.hds-blog-img-container img{width:100%;height:100%;object-fit:cover;display:block;}
.hds-blog-card .hds-content{max-width:520px;width:100%;flex:1;}

/* Bottom gradient fade */
.hds-blog-gradient{
    position:fixed;bottom:0;left:0;width:100%;pointer-events:none;z-index:10;
    background:linear-gradient(to bottom,rgba(234,237,239,0),rgba(234,237,239,1));
}

/* Carousel arrows — positioned by JS near card edges */
.hds-blog-arrow{
    position:fixed;top:50%;transform:translateY(-50%);
    background:none;border:none;color:#1a1a1a;
    font-size:1.4rem;cursor:pointer;z-index:60;padding:1rem;
    opacity:0.4;transition:opacity .3s ease;
    font-family:'GNUTypewriter',monospace;line-height:1;
}
.hds-blog-arrow:hover{opacity:1;}

/* Mobile thumbnail peeks */
.hds-blog-peek{
    position:absolute;top:0;width:28%;height:100%;
    cursor:pointer;z-index:5;overflow:hidden;
    opacity:0.35;transition:opacity .3s ease;
}
.hds-blog-peek:hover{opacity:0.5;}
.hds-blog-peek img{width:100%;height:100%;object-fit:cover;}
.hds-blog-peek--prev{left:0;border-right:1px solid rgba(0,0,0,.08);}
.hds-blog-peek--next{right:0;border-left:1px solid rgba(0,0,0,.08);}

/* Blog preloader */
.hds-blog-preloader{
    position:fixed;top:0;left:0;width:100%;height:100%;
    display:flex;align-items:center;justify-content:center;
    background:#eaedef;
    background-image:url('assets/images/SQ_Background-Paper.png');
    background-size:cover;background-position:center;
    z-index:99999;
    transition:opacity .4s ease;
}
.hds-blog-preloader.hds-loaded{opacity:0;pointer-events:none;}
.hds-blog-dots{
    font-size:1.5rem;letter-spacing:.2em;
    font-family:inherit;
}

/* Back button — fixed (all viewports) */
.hds-blog-back{
    position:fixed;z-index:200;
    pointer-events:auto;
    transition:opacity .3s ease;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
}
.hds-blog-back a{
    text-decoration:none;color:inherit;
    letter-spacing:.1em;transition:opacity .3s ease;
    font-family:inherit;
    display:block;
    min-width:48px;min-height:48px;
    padding:12px;
    touch-action:manipulation;
}
.hds-blog-back a:hover{opacity:.6;}
.hds-blog-back img{max-height:30px;width:auto;display:block;}

/* Back button — inline footer (mobile, inside card content) */
.hds-back-footer{
    text-align:center;
    padding:2.5rem 1rem 3rem;
    margin-top:1rem;
    border-top:1px solid rgba(0,0,0,.08);
}
.hds-back-footer-link{
    text-decoration:none;color:inherit;
    letter-spacing:.1em;
    font-family:inherit;font-size:inherit;
    display:inline-block;
    padding:12px 20px;
}
.hds-back-footer-link:hover{opacity:.6;}
.hds-back-footer-link img{max-height:30px;width:auto;display:inline-block;}

/* Scroll down indicator (mobile single view) */
.hds-scroll-arrow{
    position:fixed;bottom:20px;left:50%;transform:translateX(-50%);
    font-size:1.6rem;color:#1a1a1a;opacity:0;
    transition:opacity .4s ease;
    pointer-events:none;z-index:56;
    font-family:'GNUTypewriter',monospace;
    text-shadow:0 1px 3px rgba(255,255,255,.8);
}

/* Single post expanded view */
.hds-blog-carousel.hds-single-view .hds-blog-card{
    pointer-events:none!important;opacity:0!important;
}
.hds-blog-carousel.hds-single-view .hds-blog-card--expanded{
    opacity:1!important;pointer-events:auto!important;
    overflow-y:auto;overflow-x:hidden;
    scrollbar-width:none;-ms-overflow-style:none;
}
.hds-blog-carousel.hds-single-view .hds-blog-card--expanded::-webkit-scrollbar{display:none;}
.hds-blog-carousel.hds-single-view .hds-blog-arrow{display:none!important;}
.hds-blog-carousel.hds-single-view .hds-blog-gradient{display:none;}
/* Hide footer links in single view (both layouts) */
.hds-blog-carousel.hds-single-view ~ .hds-footer-wrap{opacity:0;pointer-events:none;transition:opacity .3s ease;}
.hds-blog-vertical.hds-vert-single ~ .hds-footer-wrap{opacity:0;pointer-events:none;transition:opacity .3s ease;}

/* === VERTICAL SCROLL LAYOUT === */
.hds-blog-vertical{
    width:100%;min-height:100vh;
    padding:6rem 2rem 6rem;
    display:flex;flex-direction:column;align-items:center;
}
.hds-vert-card{
    width:100%;
    cursor:pointer;
    transition:opacity .4s ease, max-height .5s ease, margin .5s ease, padding .5s ease;
    overflow:hidden;
}
.hds-vert-card .hds-blog-card__inner{
    margin:0 auto;
    padding:2rem;
    display:flex;flex-direction:column;align-items:center;
    transition:max-width .4s ease;
}
.hds-vert-card:hover{opacity:0.8;}
.hds-content--title-only{margin-bottom:0;}
.hds-content--title-only .hds-content__heading{margin-bottom:0;}
/* Vertical single view — opacity/pointer-events handled by CSS, max-height by JS */
.hds-blog-vertical.hds-vert-single .hds-vert-card{
    opacity:0;pointer-events:none;overflow:hidden;
}
.hds-blog-vertical.hds-vert-single .hds-vert-card--expanded{
    opacity:1!important;pointer-events:auto!important;
    overflow:visible!important;cursor:default;
}
.hds-blog-vertical.hds-vert-single .hds-vert-card--expanded .hds-blog-card__inner{
    padding-top:4rem;padding-bottom:4rem;
}

/* === RESPONSIVE === */
@media(max-width:768px){
    .hds-page{padding:3rem 1.5rem 3rem;}
    .hds-content{max-width:100%;}
    .hds-content__body{max-width:100%;}
    .hds-gallery__arrow{opacity:.8;}
    .hds-blog-card__inner{padding:3rem 1.5rem 3rem;}
    .hds-blog-img-container{width:min(320px,80vw)!important;height:auto!important;}
    .hds-blog-img-container img{height:auto;object-fit:contain;}
    .hds-blog-vertical{padding:5rem 1.5rem 5rem;}
}
@media(max-width:480px){
    .hds-lander__title{font-size:.75rem;letter-spacing:.1em;}
    .hds-page{padding:2rem 1rem 3rem;}
    .hds-blog-card__inner{padding:2rem 1rem 3rem;}
    .hds-blog-img-container{width:min(320px,85vw)!important;height:auto!important;}
    .hds-blog-img-container img{height:auto;object-fit:contain;}
    .hds-blog-peek{width:22%;}
    .hds-blog-vertical{padding:4rem 1rem 4rem;}
}
