/*
Theme Name: Dunblane Joinery Heritage
Theme URI: https://dunblanejoinery.co.uk/
Author: Dunblane Joinery
Description: Lightweight, SEO-conscious heritage joinery theme with desktop hamburger navigation, native WhatsApp chat and service-page illustrations.
Version: 1.0.4
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: dunblane-joinery
*/
:root{--green:#18352f;--green-deep:#102923;--green-mid:#22463e;--ivory:#f5f1e8;--paper:#fffdf8;--charcoal:#292b28;--brass:#b29a67;--sand:#ded3ba;--muted:#696b65;--line:rgba(24,53,47,.16);--serif:Baskerville,"Palatino Linotype",Palatino,Georgia,serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--charcoal);background:var(--paper);font-family:var(--sans);font-size:17px;line-height:1.7}body.menu-open{overflow:hidden}img,svg{max-width:100%;height:auto}a{color:var(--green);text-underline-offset:3px}.wrap{width:min(1180px,calc(100% - 48px));margin:auto}.screen-reader-text,.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:12px;top:12px;z-index:9999;background:#fff;padding:10px}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.06;color:var(--green);margin-top:0}h1{font-size:clamp(3rem,6vw,6rem);letter-spacing:-.035em}h2{font-size:clamp(2.2rem,4vw,4.1rem);letter-spacing:-.025em}h3{font-size:1.7rem}.eyebrow{margin:0 0 18px;color:var(--brass);font-size:.72rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase}.lead{font:1.5rem/1.5 var(--serif);color:var(--green)}.rule{width:90px;height:2px;background:var(--brass);margin-top:32px}.btn{display:inline-block;padding:14px 23px;border:1px solid currentColor;color:var(--green);text-decoration:none;font-size:.76rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.btn.gold{background:var(--brass);border-color:var(--brass);color:#132e28}.btn.ghost{background:transparent;color:inherit}.text-link{font-weight:700;text-decoration:none}
.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:100}.header-main{display:flex;align-items:center;justify-content:space-between;gap:35px;padding:19px 0}.brand{display:block;width:min(610px,57%);line-height:0}.brand img,.custom-logo-link,.custom-logo{display:block;width:100%;height:auto}.header-tools{display:flex;align-items:center;gap:15px}.site-search{display:flex;border:1px solid var(--line);background:#fff}.site-search input{border:0;padding:12px 14px;width:195px;background:transparent;font:inherit;font-size:.84rem}.site-search button{border:0;background:var(--green);color:#fff;padding:0 16px;font-weight:700}.menu-toggle{display:flex;align-items:center;flex-direction:column;justify-content:center;width:62px;height:52px;border:1px solid var(--green);background:transparent;color:var(--green);cursor:pointer}.menu-toggle span{display:block;width:25px;height:2px;background:currentColor;margin:2.5px}.menu-toggle b{font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;margin-top:3px}.main-nav[hidden]{display:none}.main-nav{position:fixed;inset:0;z-index:500;background:var(--green-deep);color:#fff;overflow:auto;opacity:0;transform:translateY(-14px);transition:opacity .2s ease,transform .2s ease}.main-nav.open{opacity:1;transform:none}.menu-panel-head{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.15);color:var(--brass);font:1.45rem var(--serif)}.menu-close{border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;padding:10px 14px;font:700 .72rem var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.menu-panel-inner{padding:55px 0 80px}.menu-primary-links{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(255,255,255,.15);margin-bottom:52px}.menu-primary-links a{padding:20px;color:#fff;text-decoration:none;text-align:center;border-right:1px solid rgba(255,255,255,.15);font:1.25rem var(--serif)}.menu-services{display:grid;grid-template-columns:repeat(5,1fr);gap:35px}.menu-services h2{color:var(--brass);font:700 .75rem var(--sans);letter-spacing:.13em;text-transform:uppercase}.menu-services a{display:block;color:#eee8dc;text-decoration:none;font-size:.88rem;padding:5px 0}.menu-services a:hover,.menu-primary-links a:hover{color:var(--brass)}
.hero{background:var(--green);color:#fff;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent 119px,rgba(255,255,255,.025) 120px)}.hero-grid{min-height:650px;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;position:relative}.hero h1{color:#fff}.hero h1 span{color:var(--sand)}.hero-lead{max-width:650px;font:1.35rem/1.5 var(--serif);color:#e7dfcd}.buttons{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}.cathedral-graphic{position:relative;align-self:end}.cathedral-graphic svg,.craft-graphic svg{display:block;stroke:rgba(222,211,186,.55);stroke-width:2;fill:none}.seal{position:absolute;right:0;bottom:10%;width:120px;height:120px;border:1px solid var(--brass);border-radius:50%;display:grid;place-content:center;text-align:center;color:var(--brass);font:1.75rem var(--serif)}.seal small{display:block;font:700 .53rem/1.35 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.trust-strip{background:#efe8d9;border-bottom:1px solid var(--sand)}.trust-strip .wrap{display:grid;grid-template-columns:repeat(4,1fr)}.trust-strip .wrap>div{position:relative;padding:30px 22px 30px 68px;border-right:1px solid rgba(24,53,47,.12)}.trust-strip .wrap>div:before{position:absolute;left:22px;top:34px;color:var(--brass);font:600 1rem/1 var(--serif);letter-spacing:.05em}.trust-strip .wrap>div:nth-child(1):before{content:"01"}.trust-strip .wrap>div:nth-child(2):before{content:"02"}.trust-strip .wrap>div:nth-child(3):before{content:"03"}.trust-strip .wrap>div:nth-child(4):before{content:"04"}.trust-strip strong,.trust-strip span{display:block}.trust-strip strong{color:var(--green);font:600 1.35rem/1.12 var(--serif);letter-spacing:-.01em}.trust-strip span{font-size:.86rem;line-height:1.45;margin-top:7px;color:var(--muted)}
.intro,.services,.process,.locations{padding:100px 0}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:start}.intro p:not(.eyebrow){max-width:660px}.services{background:var(--ivory)}.section-head{display:grid;grid-template-columns:1.15fr .85fr;gap:8%;align-items:end;margin-bottom:50px}.section-head p:last-child{color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{background:var(--paper);padding:43px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:410px;display:flex;flex-direction:column}.service-card:last-child{grid-column:1/-1}.service-icon{width:49px;color:var(--brass);margin-bottom:24px}.service-icon svg,.aside-mark svg{stroke:currentColor}.service-card h3{font-size:2rem}.service-card p{color:var(--muted);font-size:.94rem}.service-card ul{columns:2;list-style:none;padding:0;margin:8px 0 25px}.service-card li{break-inside:avoid}.service-card li a{font-size:.84rem;text-decoration:none}.service-card .card-link{margin-top:auto;text-decoration:none;font-weight:700;font-size:.76rem;text-transform:uppercase;letter-spacing:.08em}.service-card .card-link span{color:var(--brass)}
.craft-feature{display:grid;grid-template-columns:1fr 1fr;background:var(--green);color:#e8e3d7}.craft-graphic{display:flex;align-items:flex-end;padding:50px 7% 0;background:#122c26;min-height:640px}.craft-copy{padding:90px clamp(36px,8vw,120px)}.craft-copy h2{color:#fff}.craft-copy .btn{margin-top:24px}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;margin:0}.process-grid li{padding:32px;border-left:1px solid var(--line)}.process-grid span{display:block;color:var(--brass);font:1.6rem var(--serif);margin-bottom:28px}.process-grid p{font-size:.9rem;color:var(--muted)}.locations{background:#ebe3d2}.locations .wrap{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.locations h2{margin-bottom:0}
.page-hero{background:var(--green);padding:58px 0 68px}.page-hero h1{color:#fff;max-width:970px;margin-bottom:15px}.page-intro{max-width:760px;color:#e7dfcd;font:1.25rem/1.5 var(--serif);margin-bottom:0}.breadcrumbs{font-size:.76rem;color:#c5bfae;margin-bottom:42px}.breadcrumbs a{color:#fff}.breadcrumbs span{margin:0 9px}.page-layout{display:grid;grid-template-columns:minmax(0,760px) 300px;gap:80px;padding-top:75px;padding-bottom:100px;align-items:start}.page-content{min-width:0}.page-content h2{font-size:2.3rem;margin-top:2.15em}.page-content h3{font-size:1.65rem;margin-top:1.8em}.page-content p,.page-content li{max-width:75ch}.page-content img{display:block;width:100%;height:auto;margin:28px 0}.page-content .wp-block-image{margin:28px 0}.page-content iframe{max-width:100%}.page-aside{position:sticky;top:25px;background:var(--ivory);padding:32px;border-top:4px solid var(--brass)}.page-aside h2{font-size:1.75rem}.page-aside a{display:block;margin-top:12px;font-weight:700}.aside-mark{color:var(--brass);width:50px;margin-bottom:20px}.related-services{margin-top:62px;padding:36px;background:var(--ivory);border-top:4px solid var(--brass)}.related-services h2{font-size:2rem;margin-bottom:22px}.related-grid{display:grid;grid-template-columns:1fr 1fr;border-left:1px solid var(--line);border-top:1px solid var(--line)}.related-grid a{display:flex;justify-content:space-between;gap:10px;padding:14px;text-decoration:none;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-weight:700}.related-grid span{color:var(--brass)}
.service-art{background:var(--green-deep);color:var(--sand);border-top:1px solid rgba(255,255,255,.09);border-bottom:1px solid rgba(178,154,103,.45);overflow:hidden}.service-art-inner{width:min(1180px,calc(100% - 48px));height:360px;margin:auto;position:relative}.service-art svg{display:block;width:100%;height:100%;overflow:visible}.service-art .art-grid{fill:none;stroke:rgba(255,255,255,.035);stroke-width:1}.service-art .art-main{fill:none;stroke:rgba(222,211,186,.8);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.service-art .art-detail{fill:none;stroke:var(--brass);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.service-art-number{position:absolute;left:0;top:28px;margin:0;color:rgba(178,154,103,.55);font:4.5rem/1 var(--serif)}.service-art-caption{position:absolute;right:0;bottom:25px;margin:0;color:var(--brass);font:700 .72rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase}
.footer-cta{padding:70px 0;background:var(--brass)}.footer-cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:40px}.footer-cta h2{margin-bottom:5px}.footer-cta p{margin:0}.footer-cta .eyebrow{color:var(--green)}.footer-cta .btn{flex:none}.site-footer{background:var(--green-deep);color:#d6d2c8;padding:75px 0 20px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.15fr 1.15fr;gap:42px}.site-footer h2{font:700 .8rem/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brass);margin-bottom:16px}.site-footer a{display:block;color:#e9e4d9;text-decoration:none;margin:7px 0;font-size:.94rem;line-height:1.6}.footer-brand img{display:block;width:100%;max-width:430px;height:auto}.footer-brand p{max-width:430px;font-size:.94rem}.footer-contact>a{overflow-wrap:anywhere}.footer-social{display:flex;align-items:center;gap:10px;margin-top:20px}.site-footer .footer-social a{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;margin:0;border:1px solid rgba(178,154,103,.65);color:var(--brass)}.site-footer .footer-social a:hover,.site-footer .footer-social a:focus-visible{background:var(--brass);color:var(--green-deep)}.footer-social svg{width:21px;height:21px;fill:currentColor}.footer-base{border-top:1px solid rgba(255,255,255,.12);margin-top:55px;padding-top:18px;display:flex;justify-content:space-between;gap:30px;font-size:.72rem}.whatsapp-chat{position:fixed;right:22px;bottom:22px;z-index:600;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;background:#25d366;color:#102923;text-decoration:none;border:3px solid #fff;border-radius:999px;padding:11px 18px 11px 13px;box-shadow:0 9px 30px rgba(0,0,0,.28);font-weight:700;font-size:.88rem;line-height:1;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.whatsapp-chat:hover,.whatsapp-chat:focus-visible{background:#35e477;color:#102923;transform:translateY(-2px);box-shadow:0 12px 34px rgba(0,0,0,.34);outline:3px solid rgba(178,154,103,.85);outline-offset:3px}.whatsapp-chat svg{width:28px;height:28px;fill:currentColor;flex:none}
@media(max-width:1000px){.menu-services{grid-template-columns:repeat(3,1fr)}.page-layout{grid-template-columns:1fr;gap:40px}.page-aside{position:static}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:900px){.wrap{width:min(100% - 30px,1180px)}.header-main{display:block;padding:13px 0}.brand{width:100%;max-width:none}.header-tools{margin-top:12px;display:grid;grid-template-columns:1fr auto}.site-search input{width:100%}.hero-grid{grid-template-columns:1fr;min-height:auto;padding-top:68px}.cathedral-graphic{max-width:550px;margin:auto}.trust-strip .wrap{grid-template-columns:1fr 1fr}.intro-grid,.section-head,.locations .wrap{grid-template-columns:1fr;gap:25px}.craft-feature{grid-template-columns:1fr}.craft-graphic{min-height:380px}.craft-copy{padding:65px 30px}.process-grid{grid-template-columns:1fr 1fr}.service-art-inner{width:min(100% - 30px,1180px);height:310px}}
@media(max-width:620px){body{font-size:16px}.hero-grid{padding-top:54px;padding-bottom:52px}.hero h1{font-size:3.15rem}.buttons .btn{width:100%;text-align:center}.cathedral-graphic{display:none}.trust-strip .wrap,.service-grid,.process-grid,.footer-grid{grid-template-columns:1fr}.trust-strip .wrap>div{padding:31px 28px 31px 78px;border-right:0;border-bottom:1px solid rgba(24,53,47,.12)}.trust-strip .wrap>div:before{left:29px;top:36px}.trust-strip strong{font-size:1.55rem}.trust-strip span{font-size:.94rem}.intro,.services,.process,.locations{padding:70px 0}.service-card,.service-card:last-child{grid-column:auto;min-height:0;padding:32px}.service-card ul{columns:1}.craft-copy{padding:55px 24px}.footer-cta .wrap,.footer-base{display:block}.footer-cta .btn{margin-top:25px}.footer-brand{grid-column:auto}.site-footer{padding-top:60px}.site-footer h2{font-size:.9rem}.site-footer a,.site-footer p{font-size:1rem}.footer-grid{gap:36px}.footer-base{font-size:.82rem;line-height:1.6}.menu-panel-head{height:72px}.menu-panel-inner{padding:30px 0 60px}.menu-primary-links{grid-template-columns:1fr 1fr;margin-bottom:35px}.menu-primary-links a:nth-child(2){border-right:0}.menu-primary-links a{font-size:1.05rem;padding:15px}.menu-services{grid-template-columns:1fr;gap:27px}.menu-services section{border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:22px}.page-hero{padding:40px 0 48px}.page-hero h1{font-size:2.75rem}.page-layout{padding-top:50px;padding-bottom:70px}.related-services{padding:28px}.related-grid{grid-template-columns:1fr}.service-art-inner{height:225px}.service-art svg{width:145%;max-width:none;transform:translateX(-15%)}.service-art-number{z-index:1;top:18px;font-size:2.8rem}.service-art-caption{right:3px;bottom:14px;max-width:72%;font-size:.6rem;text-align:right}.whatsapp-chat{right:14px;bottom:14px;width:58px;height:58px;min-height:58px;padding:0;border-width:3px}.whatsapp-chat svg{width:30px;height:30px}.whatsapp-chat span{display:none}}

/* WordPress-assigned menus use the same full-screen panel treatment. */
.main-nav .menu{display:grid;grid-template-columns:repeat(5,1fr);gap:36px;list-style:none;margin:0;padding:55px 0 80px}.main-nav .menu>li>a{display:block;color:var(--brass);font:700 .75rem var(--sans);letter-spacing:.13em;text-transform:uppercase;text-decoration:none;margin-bottom:10px}.main-nav .sub-menu{list-style:none;margin:0;padding:0}.main-nav .sub-menu a{display:block;color:#eee8dc;text-decoration:none;font-size:.88rem;padding:5px 0}.main-nav .sub-menu a:hover{color:var(--brass)}
.wp-content{padding:70px 0 100px}.wp-content article{max-width:820px;margin-bottom:50px}.wp-content article h1{font-size:clamp(2.5rem,5vw,4.5rem)}
@media(max-width:1000px){.main-nav .menu{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.main-nav .menu{grid-template-columns:1fr;gap:27px;padding:30px 0 60px}.main-nav .menu>li{border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:22px}}

/* V1.0.1 interaction and layout corrections. */
.menu-shell{position:static}.menu-shell>summary{list-style:none}.menu-shell>summary::-webkit-details-marker{display:none}.menu-shell[open] .main-nav{opacity:1;transform:none}.menu-shell[open] .menu-toggle{background:var(--green);color:#fff}.service-grid .service-card:last-child{grid-column:auto}
.footer-grid>div>p,.footer-grid>div>a,.footer-contact>p,.footer-contact>a{font-family:var(--sans);font-size:.94rem!important;line-height:1.65!important}.footer-grid>div>h2{font-family:var(--sans);font-size:.8rem!important;line-height:1.3!important}

/* Common WordPress cookie banners, colour-matched without requiring a theme-specific plugin. */
.cky-consent-container .cky-consent-bar,.cky-modal,.cmplz-cookiebanner,#CybotCookiebotDialog,#cookie-notice,.cookie-notice-container,#catapult-cookie-bar,.moove-gdpr-info-bar-container{background:var(--ivory)!important;color:var(--charcoal)!important;border-color:var(--brass)!important;box-shadow:0 8px 30px rgba(16,41,35,.2)!important}
.cky-consent-container .cky-title,.cky-consent-container .cky-notice-des,.cky-consent-container .cky-notice-des *,.cmplz-cookiebanner .cmplz-title,.cmplz-cookiebanner .cmplz-message,.cmplz-cookiebanner p,#CybotCookiebotDialog,#cookie-notice,.cookie-notice-container,#catapult-cookie-bar,.moove-gdpr-info-bar-container *{color:var(--charcoal)!important}
.cky-btn,.cmplz-cookiebanner .cmplz-btn,#CybotCookiebotDialogBodyButtonAccept,#CybotCookiebotDialogBodyLevelButtonAccept,#cookie-notice .cn-button,#catapultCookie,#moove_gdpr_cookie_info_bar .mgbutton{background:var(--green)!important;border:1px solid var(--green)!important;color:#fff!important;border-radius:0!important;font-weight:700!important}
.cky-btn-reject,.cky-btn-customize,.cmplz-cookiebanner .cmplz-deny,.cmplz-cookiebanner .cmplz-view-preferences{background:transparent!important;border:1px solid var(--green)!important;color:var(--green)!important}
.cky-btn-accept,.cmplz-cookiebanner .cmplz-accept{background:var(--brass)!important;border-color:var(--brass)!important;color:var(--green-deep)!important}
@media(max-width:620px){.craft-graphic{display:none!important;min-height:0!important;padding:0!important}.craft-feature{display:block}.footer-grid>div>p,.footer-grid>div>a,.footer-contact>p,.footer-contact>a{font-size:1rem!important}.footer-grid>div>h2{font-size:.9rem!important}}

/* V1.0.2: a CSS-controlled menu that opens even if JavaScript is unavailable. */
.menu-state{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.menu-toggle,.menu-close{user-select:none}.menu-close{display:inline-block}.menu-state:checked~.main-nav{opacity:1!important;transform:none!important;visibility:visible!important;pointer-events:auto!important}.menu-state:not(:checked)~.main-nav{visibility:hidden;pointer-events:none}.menu-state:checked~.header-main .menu-toggle{background:var(--green)!important;color:#fff!important}
