/*
Theme Name: Happy Hour Media Studio
Theme URI: https://www.happyhourmedia.com.au/
Author: Happy Hour Media
Description: Bespoke retro-modern theme for Happy Hour Media.
Version: 1.7.0
Requires PHP: 7.4
Text Domain: happy-hour-media
*/
:root{--ink:#17191a;--orange:#f05a24;--cream:#f7f3eb;--muted:#66655f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff}a{color:inherit}img{max-width:100%;height:auto}.wrap{max-width:1180px;margin:auto;padding:0 28px}.topbar{background:var(--ink);color:#fff;font-size:12px;letter-spacing:.15em;text-transform:uppercase;padding:11px 0}.topbar .wrap{display:flex;justify-content:space-between}.site-header{background:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid #e9e4da}.navrow{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:90px}.brand{display:block;width:255px;flex-shrink:0}.brand img{display:block;width:100%}.nav-links{display:flex;align-items:center;gap:28px}.nav-links a{text-decoration:none;font-weight:700;font-size:13px}.nav-links a:hover{color:var(--orange)}.btn{display:inline-block;text-decoration:none;border-radius:3px;padding:17px 25px;font-size:13px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;background:var(--orange);color:#fff;border:2px solid var(--orange);transition:.2s}.btn:hover{background:#cf4314;border-color:#cf4314}.btn.dark{background:var(--ink);border-color:var(--ink)}.btn.outline{background:transparent;border-color:var(--ink);color:var(--ink)}.hero{background:var(--cream);overflow:hidden}.hero-inner{display:grid;grid-template-columns:1.08fr .92fr;align-items:center;min-height:610px;gap:40px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--orange)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(52px,6.4vw,91px);line-height:.98;letter-spacing:-.06em;margin:24px 0}h1 em{font-style:normal;color:var(--orange)}.hero p{font-size:19px;line-height:1.65;color:#575650;max-width:530px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.hero-art{position:relative;display:flex;justify-content:center;align-items:center;min-height:480px}.hero-art:before{content:'';width:420px;height:420px;background:#f05a24;border-radius:50%;position:absolute;opacity:.12}.hero-art img{width:min(90%,390px);position:relative;filter:drop-shadow(0 18px 25px rgba(0,0,0,.09))}.strip{background:var(--ink);color:#fff;padding:20px 0}.strip .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800}.strip b{color:var(--orange)}section.block{padding:95px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:34px}.section-head h2,.big-title{font-size:clamp(35px,4.2vw,57px);letter-spacing:-.05em;line-height:1.08;margin:14px 0}.section-head p{max-width:390px;line-height:1.7;color:var(--muted)}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service{padding:35px;border:1px solid #e6e2da;background:#fff;min-height:300px;display:flex;flex-direction:column}.service .number{color:var(--orange);font-weight:900;font-size:13px}.service h3{font-size:27px;letter-spacing:-.04em;margin:45px 0 15px}.service p{color:var(--muted);line-height:1.7;font-size:15px;flex:1}.service a{font-weight:800;text-decoration:none;color:var(--orange);font-size:13px}.dark-panel{background:var(--ink);color:#fff;padding:95px 0}.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.dark-panel p{color:#d0ccc6;line-height:1.8;font-size:17px}.soundbox{border:1px solid #59524b;padding:36px;background:#242526}.soundbox .wave{font-size:55px;letter-spacing:.08em;color:var(--orange);line-height:1.5}.soundbox h3{font-size:24px;margin:15px 0}.soundbox p{font-size:14px}.quote{background:var(--cream);padding:80px 0;text-align:center}.quote blockquote{font-size:clamp(25px,3.3vw,40px);line-height:1.35;letter-spacing:-.03em;max-width:850px;margin:22px auto}.quote small{font-weight:800;color:var(--orange);text-transform:uppercase;letter-spacing:.12em}.contact{background:var(--orange);color:#fff;padding:85px 0}.contact h2{font-size:clamp(42px,5vw,70px);letter-spacing:-.06em;line-height:1.05}.contact p{max-width:600px;line-height:1.6;font-size:18px}.contact .btn{background:#fff;border-color:#fff;color:var(--ink);margin-right:10px;margin-bottom:10px}.contact .btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.footer{background:#101112;color:#fff;padding:42px 0}.footer .wrap{display:flex;justify-content:space-between;gap:20px;align-items:center}.footer img{width:220px;background:#fff;padding:8px}.footer p{font-size:12px;color:#c2c0bc;margin:0}.page-content{padding:65px 0;max-width:850px;line-height:1.8}.page-content h1{font-size:48px}.page-content a{color:var(--orange)}@media(max-width:850px){.navrow{flex-wrap:wrap;padding-top:12px;padding-bottom:14px}.nav-links{gap:13px;flex-wrap:wrap}.nav-links a{font-size:12px}.brand{width:195px}.hero-inner,.split{grid-template-columns:1fr;gap:10px}.hero-inner{padding-top:55px}.hero-art{min-height:330px}.hero-art:before{width:280px;height:280px}.hero-art img{max-width:280px}.services{grid-template-columns:1fr}.service{min-height:240px}.service h3{margin-top:25px}.section-head{display:block}section.block,.dark-panel{padding:65px 0}.footer .wrap{display:block}.footer p{margin-top:20px}}@media(max-width:480px){.topbar{font-size:9px}.nav-links{gap:10px}.nav-links a{font-size:11px}.wrap{padding:0 20px}h1{font-size:53px}.hero p{font-size:16px}}

.mc-photo{margin:0;position:relative;overflow:hidden;border-radius:8px;background:var(--cream)}
.mc-photo img{display:block;width:100%;height:100%;min-height:360px;max-height:520px;object-fit:cover;object-position:center 32%}
.mc-photo figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.78));color:#fff;padding:45px 20px 18px;font-weight:700;letter-spacing:.04em}
@media(max-width:700px){.mc-photo img{height:auto;min-height:0;max-height:none}}

/* Mobile usability improvements */
.menu-toggle{display:none}html{scroll-padding-top:110px}
@media(max-width:850px){
 .topbar{padding:9px 0}.topbar .wrap{justify-content:center;text-align:center}.topbar .wrap span:last-child{display:none}
 .navrow{min-height:75px;flex-wrap:nowrap;padding-top:9px;padding-bottom:9px;position:relative}
 .brand{width:190px;max-width:calc(100% - 75px)}
 .menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid #dedbd4;background:#fff;border-radius:7px;min-width:58px;min-height:52px;cursor:pointer;color:var(--ink)}
 .menu-toggle span{display:block;width:23px;height:2px;background:var(--ink);border-radius:2px}.menu-toggle small{font-size:10px;font-weight:800;letter-spacing:.08em}
 .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e9e4da;box-shadow:0 15px 25px rgba(0,0,0,.13);padding:10px 22px 18px;z-index:30;flex-direction:column;align-items:stretch;gap:0}
 .nav-links.is-open{display:flex}.nav-links a{display:block;padding:14px 4px;font-size:16px;border-bottom:1px solid #eee9e3}.nav-links a:last-child{border-bottom:0}
 .hero-inner{padding-top:46px;padding-bottom:28px;gap:20px}.hero-art{min-height:250px}.hero-art:before{width:235px;height:235px}.hero-art img{max-width:255px}
 .split{gap:30px}.service{min-height:0;padding:27px}.service h3{margin:20px 0 12px}.section-head{margin-bottom:26px}.soundbox{padding:26px}.quote{padding:55px 0}.contact{padding:65px 0}.footer .wrap{text-align:center}.footer img{margin:auto}
}
@media(max-width:480px){
 .wrap{padding-left:22px;padding-right:22px}.brand{width:170px}.topbar{font-size:10px}
 h1{font-size:clamp(40px,11.5vw,56px);line-height:1.05;letter-spacing:-.05em}.hero p{font-size:16px;line-height:1.6}
 .hero-actions{flex-direction:column;align-items:stretch}.hero-actions .btn{text-align:center}.hero-art{min-height:225px}.hero-art img{max-width:215px}.hero-art:before{width:205px;height:205px}
 .strip .wrap{justify-content:center;text-align:center;gap:10px}.strip .wrap>*{width:100%}
 section.block,.dark-panel{padding:52px 0}.section-head h2,.big-title{font-size:clamp(32px,9vw,43px)}.contact h2{font-size:clamp(38px,10vw,52px)}.contact .btn{display:block;width:100%;text-align:center;margin-right:0}
 .mc-photo img{width:100%;height:auto;min-height:0;max-height:none;object-fit:contain}.page-content{padding:42px 0}.page-content h1{font-size:38px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* v1.4: compact right-aligned mobile navigation trigger; no floating Menu text */
@media(max-width:850px){
 .navrow{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;position:relative;gap:12px}
 .brand{flex:0 1 195px;min-width:0}
 .menu-toggle{display:flex!important;position:relative!important;float:none!important;flex:0 0 48px!important;align-self:center!important;align-items:center;justify-content:center;gap:5px;min-width:48px;min-height:46px;margin:0 0 0 auto!important;padding:9px!important;border-radius:6px}
 .menu-toggle span{display:block;width:23px;height:2px;flex:0 0 2px}
 .menu-toggle small{display:none!important}
 .nav-links{position:absolute;top:100%;left:0;right:0}
}
@media(min-width:851px){.menu-toggle{display:none!important}}

/* v1.5 — enforce predictable containment across phones, tablets and desktop */
html,body{width:100%;max-width:100%;overflow-x:clip}
body{min-width:0}
.site-header,.hero,.strip,.dark-panel,.contact,.footer,section.block,.quote{max-width:100%}
.wrap{width:100%;max-width:1180px;margin-left:auto;margin-right:auto}
.hero-inner>*,.split>*,.section-head>*,.services>*,.navrow>*{min-width:0}
.hero h1,.section-head h2,.big-title,.contact h2{overflow-wrap:break-word}
.hero-art img{height:auto;max-width:100%}
.menu-toggle{display:none!important;visibility:hidden!important}
@media(max-width:1100px){
 .site-header .navrow{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;min-height:78px;position:relative}
 .site-header .brand{display:block!important;flex:0 1 205px!important;width:205px!important;max-width:calc(100% - 70px)!important;min-width:0!important;margin:0!important}
 .site-header .brand img{display:block;width:100%;height:auto}
 .site-header .menu-toggle{display:flex!important;visibility:visible!important;appearance:none!important;-webkit-appearance:none!important;box-sizing:border-box!important;position:static!important;inset:auto!important;transform:none!important;float:none!important;margin:0 0 0 auto!important;padding:10px!important;width:52px!important;height:48px!important;min-width:52px!important;min-height:48px!important;max-width:52px!important;flex:0 0 52px!important;align-self:center!important;align-items:center!important;justify-content:center!important;flex-direction:column!important;gap:5px!important;border:1px solid #dedbd4!important;border-radius:6px!important;background:#fff!important;color:#17191a!important;box-shadow:none!important;line-height:1!important;cursor:pointer}
 .site-header .menu-toggle span{display:block!important;width:23px!important;height:2px!important;min-height:2px!important;max-height:2px!important;flex:0 0 2px!important;margin:0!important;padding:0!important;border:0!important;border-radius:2px!important;background:#17191a!important;opacity:1!important}
 .site-header .nav-links{display:none!important;position:absolute!important;top:100%!important;left:0!important;right:0!important;width:100%!important;max-width:100%!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;background:#fff!important;padding:10px 20px 18px!important;box-shadow:0 14px 24px rgba(0,0,0,.13)!important;z-index:99!important}
 .site-header .nav-links.is-open{display:flex!important}
 .site-header .nav-links a{display:block!important;font-size:16px!important;padding:13px 6px!important;border-bottom:1px solid #eee9e3}
 .hero-inner,.split{grid-template-columns:minmax(0,1fr)!important}
 .hero-inner{min-height:0;padding-top:48px;padding-bottom:35px}
 .hero-art{min-height:245px}
 .hero-art:before{width:min(60vw,260px);height:auto;aspect-ratio:1}
 .hero-art img{width:min(65vw,255px)}
 .services{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
}
@media(max-width:600px){
 .wrap{padding-left:20px;padding-right:20px}
 .site-header .navrow{min-height:70px}
 .site-header .brand{flex-basis:185px!important;width:185px!important}
 .hero h1{font-size:clamp(36px,10vw,55px)!important;line-height:1.04!important;letter-spacing:-.045em!important}
 .hero .eyebrow{font-size:10px;letter-spacing:.13em}
 .hero-inner{gap:10px;padding-top:40px}
 .hero-art{min-height:225px}
 .hero-art img{width:min(65vw,225px)}
 .section-head h2,.big-title{font-size:clamp(30px,8.5vw,43px)}
 .service{padding:25px}
 .services{grid-template-columns:minmax(0,1fr)}
 .hero-actions{display:flex;flex-direction:column;align-items:stretch}
 .hero-actions .btn{text-align:center}
 .mc-photo img{height:auto;max-height:none;min-height:0}
 .contact .btn{display:block;width:100%;margin-right:0;text-align:center}
}
@media(min-width:1101px){
 .site-header .menu-toggle{display:none!important;visibility:hidden!important}
 .site-header .nav-links{display:flex!important}
}

.about-section{background:#f8f5ee;scroll-margin-top:110px}.about-section p{line-height:1.8;color:#55534e;margin:0 0 20px}.about-section .btn{margin-top:12px}section[id]{scroll-margin-top:110px}

/* v1.7: Prevent the Unicode waveform glyphs from overflowing their panel. */
.soundbox{min-width:0;max-width:100%;overflow:hidden}
.soundbox .wave{display:flex;align-items:center;justify-content:center;gap:clamp(4px,1.2vw,12px);width:100%;max-width:100%;height:72px;margin:0 0 20px;padding:0;overflow:hidden;font-size:0;letter-spacing:0;line-height:1}
.soundbox .wave span{display:block;flex:1 1 0;min-width:0;max-width:32px;background:var(--orange);border-radius:1px}
.soundbox .wave span:nth-child(1),.soundbox .wave span:nth-child(9){height:12%}
.soundbox .wave span:nth-child(2),.soundbox .wave span:nth-child(8){height:32%}
.soundbox .wave span:nth-child(3),.soundbox .wave span:nth-child(7){height:65%}
.soundbox .wave span:nth-child(4),.soundbox .wave span:nth-child(6){height:85%}
.soundbox .wave span:nth-child(5){height:100%}
@media(max-width:600px){.soundbox .wave{height:56px;gap:5px}}
