/*
Theme Name: Walls & All
Theme URI: https://wallsandall.co.uk
Author: Walls & All
Description: A polished one-page theme for Walls & All, a Somerset decorating and home-improvement business.
Version: 1.4.6
Text Domain: walls-and-all
*/


    :root{--ink:#193326;--green:#183326;--deep:#10261c;--cream:#f8f4eb;--paper:#eee8da;--gold:#c79531;--line:rgba(199,149,49,.55);--body:#3d4a40;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--body);font:400 16px/1.65 'DM Sans',Arial,sans-serif}a{color:inherit}img{max-width:100%;display:block}.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;z-index:30;background:#fff;padding:.7rem}.site-header{position:sticky;top:0;z-index:10;background:rgba(248,244,235,.96);border-bottom:1px solid rgba(25,51,38,.1);backdrop-filter:blur(10px)}.nav{max-width:var(--max);margin:auto;min-height:78px;padding:0 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.brand{text-decoration:none;color:var(--ink);font:600 1.55rem/1 'Playfair Display',serif;letter-spacing:.04em;white-space:nowrap}.brand small{display:block;color:var(--gold);font:500 .48rem/1.3 'DM Sans',sans-serif;letter-spacing:.22em;text-align:center;margin-top:.45rem}.nav-links{display:flex;gap:1.35rem;align-items:center}.nav-links a{text-decoration:none;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}.nav-links a:hover{color:#91651e}.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--gold);background:var(--gold);color:#fff;padding:.85rem 1.2rem;font-weight:600;font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;transition:.2s}.button:hover{background:#a9791d;border-color:#a9791d}.button.outline{background:transparent;color:var(--green)}.menu-toggle{display:none;border:0;background:none;font:600 .78rem 'DM Sans';letter-spacing:.1em;color:var(--ink)}.hero{max-width:var(--max);margin:auto;padding:5.8rem 1.25rem 5.1rem;display:grid;grid-template-columns:1.05fr .95fr;gap:4rem;align-items:center}.eyebrow,.section-kicker{color:#98701f;font-weight:600;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase}.hero h1,.section-title,.contact-title{font:500 clamp(3rem,5.7vw,5.75rem)/.98 'Playfair Display',serif;color:var(--ink);letter-spacing:-.04em;margin:.7rem 0 1.35rem}.hero p{max-width:560px;font-size:1.1rem;margin:0 0 1rem}.hero-actions{display:flex;gap:.9rem;align-items:center;margin-top:2rem;flex-wrap:wrap}.call-link{font-weight:600;color:var(--green);text-underline-offset:4px}.hero-image{position:relative;background:var(--green);padding:1rem}.hero-image:before{content:"";position:absolute;border:1px solid var(--gold);inset:1.7rem -1.1rem -1.1rem 1.7rem;z-index:-1}.hero-image img{width:100%;aspect-ratio:1.25;object-fit:cover;object-position:center}.services{background:var(--green);color:var(--cream);padding:6rem 1.25rem}.wrap{max-width:var(--max);margin:auto}.section-top{max-width:650px;margin-bottom:3rem}.section-top .section-kicker{color:#e1b658}.section-title{font-size:clamp(2.2rem,4vw,4rem);color:inherit;margin:.45rem 0 .7rem}.section-top p{margin:0;font-size:1.08rem}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service{min-height:200px;padding:1.9rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.service-num{font:italic 1.2rem 'Playfair Display';color:#e1b658}.service h3{font-size:.88rem;letter-spacing:.11em;margin:1.3rem 0 .55rem}.service p{margin:0;color:#e9e4d9;font-size:.95rem}.ask{margin:2rem 0 0;font:italic 1.4rem 'Playfair Display',serif;color:#f2dfae}.about{padding:7rem 1.25rem;display:grid;grid-template-columns:1fr .92fr;gap:7rem;max-width:var(--max);margin:auto;align-items:center}.about-copy p{max-width:570px;margin:.5rem 0 1.15rem}.portrait-placeholder{min-height:415px;background:linear-gradient(135deg,#203d2e,#10261c);border:1px solid var(--gold);padding:2rem;display:flex;align-items:end;position:relative;color:#f5ebd4;overflow:hidden}.portrait-placeholder:before{content:"✦";position:absolute;color:var(--gold);font:12rem 'Playfair Display';right:1.5rem;top:-3.4rem;opacity:.65}.portrait-placeholder span{font:italic 1.2rem 'Playfair Display';position:relative}.why{background:var(--paper);padding:6rem 1.25rem}.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(25,51,38,.15);border:1px solid rgba(25,51,38,.15)}.why-card{background:var(--paper);padding:2rem}.why-card b{display:block;font:600 2.2rem 'Playfair Display';color:#a87a27}.why-card h3{font-size:.82rem;letter-spacing:.12em;color:var(--ink);margin:1rem 0 .5rem}.why-card p{font-size:.94rem;margin:0}.work{padding:7rem 1.25rem}.work-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.3rem}.work-head p{max-width:390px;margin:0}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}.project{margin:0}.project-image{aspect-ratio:1.1;background:linear-gradient(135deg,#d9d1bf,#bcb398);display:flex;align-items:center;justify-content:center;color:#4e624f;border:1px solid #c3b99f;position:relative;overflow:hidden}.project-image:after{content:none}.project:nth-child(2) .project-image{background:linear-gradient(135deg,#d3d8cd,#8da08d)}.project:nth-child(3) .project-image{background:linear-gradient(135deg,#eee7da,#b58f51)}.project:nth-child(4) .project-image{background:linear-gradient(135deg,#536650,#e1d4bb)}.project:nth-child(5) .project-image{background:linear-gradient(135deg,#cabba2,#7b8d78)}.project:nth-child(6) .project-image{background:linear-gradient(135deg,#adb9b4,#e3d9c8)}figcaption{padding:.75rem 0 0;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.testimonials{background:var(--green);padding:6rem 1.25rem;color:var(--cream)}.quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}.quote{border:1px solid var(--line);padding:2rem;min-height:185px;display:flex;flex-direction:column;justify-content:space-between}.quote p{font:italic 1.25rem/1.45 'Playfair Display';margin:0}.quote cite{font-style:normal;font-size:.75rem;letter-spacing:.13em;color:#e1b658;text-transform:uppercase;margin-top:1.2rem}.contact{padding:7rem 1.25rem;background:#f4efe4}.contact-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:5rem}.contact-title{font-size:clamp(2.5rem,4.7vw,4.5rem);margin:.5rem 0 1rem}.contact-details{margin:2rem 0}.contact-details a{display:block;color:var(--ink);font:500 1.22rem 'Playfair Display';margin:.45rem 0;text-decoration:none}.contact-details a:hover{text-decoration:underline}.form{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.field{display:grid;gap:.4rem}.field.full{grid-column:1/-1}.field label{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);font-weight:600}.field input,.field textarea{width:100%;border:1px solid #c9bfaa;background:#fffdf8;border-radius:0;padding:.8rem;font:inherit;color:var(--body)}.field textarea{min-height:125px;resize:vertical}.form .button{justify-self:start;border:0;cursor:pointer}.success{display:none;grid-column:1/-1;background:#e5efe4;border-left:3px solid var(--green);padding:1rem;color:var(--ink)}.success.show{display:block}.footer{background:var(--deep);color:#eee8db;padding:4rem 1.25rem 1.5rem}.footer-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem}.footer .brand{color:#fff}.footer p{font-size:.9rem}.footer h3{font-size:.75rem;letter-spacing:.14em;color:#d8ad55;text-transform:uppercase}.footer a{display:block;text-decoration:none;margin:.35rem 0;font-size:.9rem}.footer a:hover{text-decoration:underline}.legal{max-width:var(--max);margin:3rem auto 0;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.15);font-size:.75rem;color:#c9c7bd;display:flex;justify-content:space-between;gap:1rem}.legal a{display:inline}
    @media(max-width:760px){.nav{min-height:68px}.nav-links{display:none;position:absolute;top:68px;left:0;right:0;background:var(--cream);padding:1.2rem;box-shadow:0 10px 15px rgba(0,0,0,.08);flex-direction:column;align-items:stretch}.nav-links.open{display:flex}.nav-links .button{text-align:center}.menu-toggle{display:block}.hero,.about,.contact-grid{grid-template-columns:1fr;gap:2.5rem}.hero{padding:3.7rem 1.25rem 4rem}.hero h1{font-size:3.35rem}.hero-image{order:-1}.hero-image:before{inset:1rem -.4rem -.4rem 1rem}.services,.about,.work,.contact{padding-top:4.5rem;padding-bottom:4.5rem}.services-grid,.gallery,.quote-grid{grid-template-columns:1fr}.service{min-height:0}.why-grid{grid-template-columns:1fr 1fr}.work-head{display:block}.work-head p{margin-top:1rem}.form{grid-template-columns:1fr}.field.full{grid-column:auto}.form .button{width:100%}.footer-grid{grid-template-columns:1fr;gap:1.5rem}.legal{display:block}.legal span{display:block;margin-top:.5rem}.hero-actions{display:grid;grid-template-columns:1fr}.hero-actions .button{text-align:center}.call-link{text-align:center}.about{padding-top:4.5rem}.portrait-placeholder{min-height:260px}.section-title{font-size:2.7rem}}
    @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
  

.custom-logo-link img{width:auto;max-width:220px;max-height:65px;object-fit:contain}
.about-photo{width:100%;height:440px;object-fit:cover;border:1px solid var(--gold)}
.project-image img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.project-image span{font:italic 1.05rem 'Playfair Display';background:var(--cream);padding:.4rem .7rem;border:1px solid var(--gold)}
.social-links{display:flex;gap:.5rem;flex-wrap:wrap}.footer .social-links a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid currentColor;border-radius:50%}.social-links svg{width:21px;height:21px}
.footer-credits{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}.footer .credit-logo{display:inline-flex;margin:0}.credit-logo img{width:140px;height:auto;max-height:32px;object-fit:contain}
.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.content-page{padding:4rem 1.25rem;min-height:55vh}.content-page h1{color:var(--ink)}
.why-card{background:transparent}.why-grid{background:transparent}.section-kicker,.eyebrow,.service-num,.why-card b,.footer h3,.quote cite{color:var(--gold)}
.service p,.ask{color:inherit}.portrait-placeholder{background:linear-gradient(135deg,var(--green),var(--deep))}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
@media(max-width:760px){.legal .footer-credits{display:flex;margin-top:1rem}.about-photo{height:340px}}

.footer-business-logo img{max-width:240px;max-height:110px;width:auto;height:auto;object-fit:contain}

/* Responsive content, touch targets and gallery dialog. */
html{scroll-padding-top:100px}
body{overflow-wrap:break-word}
.hero>*,.about>*,.contact-grid>*,.footer-grid>*,.services-grid>*,.why-grid>*,.gallery>*,.quote-grid>*,.form>*{min-width:0}
.hero h1,.section-title,.contact-title,.brand,.contact-details a,.footer a{overflow-wrap:anywhere}
.quote{margin:0}
button,input,textarea{max-width:100%}
.button{min-height:44px;text-align:center;white-space:normal}
.nav-links a{min-height:44px;display:inline-flex;align-items:center}
.brand{white-space:normal}.brand small{line-height:1.6}
.nav .custom-logo-link{flex-shrink:1;min-width:0;display:block}
.nav .custom-logo-link img{max-width:100%;width:auto;height:auto;max-height:65px}
.nav .custom-logo-link{max-width:220px}
.footer-business-logo img{max-width:100%}
.content-page img{height:auto}.content-page iframe,.content-page video{max-width:100%}
.content-page table{display:block;max-width:100%;overflow-x:auto}
.verification-field{padding:1rem;border:1px solid var(--gold);background:var(--cream)}
.verification-field p{margin:0;font-size:.95rem}.verification-field strong{font-size:1.1rem}
.verification-field input{max-width:22rem}
.project-link{display:block;position:absolute;inset:0;cursor:zoom-in}
.project-link:focus-visible{outline-offset:-5px;z-index:1}
.lightbox:not([open]){display:none}
.lightbox{position:fixed;inset:0;box-sizing:border-box;margin:0;border:0;padding:4rem 1rem 1.5rem;background:transparent;color:#fff;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;overflow:hidden}
.lightbox[open]{display:flex;align-items:center;justify-content:center}
.lightbox::backdrop{background:rgba(0,0,0,.85)}
.lightbox-image{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;margin:0}
.lightbox-image[hidden]{display:none}
.lightbox-close{position:absolute;right:max(.5rem,env(safe-area-inset-right));top:max(.5rem,env(safe-area-inset-top));display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:0;border-radius:0;background:transparent;color:#fff;font:2.4rem/1 Arial,sans-serif;cursor:pointer}
.lightbox-close:hover{opacity:.75}
.lightbox-status{position:absolute;left:1rem;right:1rem;bottom:.25rem;text-align:center;font-size:.9rem;margin:0}.lightbox-status:empty{display:none}
html.lightbox-open,html.lightbox-open body{overflow:hidden}
.admin-bar .site-header{top:32px}
@media(max-width:1024px){
 .nav{position:relative;min-height:76px;gap:1rem;flex-wrap:wrap;padding-top:.3rem;padding-bottom:.3rem}
 .nav-links{position:static;display:flex;flex-direction:row;flex-wrap:wrap;flex-basis:100%;padding:.75rem 0;gap:.5rem 1rem;background:transparent;box-shadow:none}
 .menu-toggle{display:none;flex-shrink:0;min-width:60px;min-height:44px;padding:.5rem;cursor:pointer}
 .nav-ready .nav{flex-wrap:nowrap}
 .nav-ready .menu-toggle{display:block}
 .nav-ready .nav-links{display:none;position:absolute;top:100%;left:0;right:0;padding:1rem 1.25rem;background:var(--cream);box-shadow:0 10px 15px #0002;max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);overflow-y:auto;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:.25rem}
 .nav-ready .nav-links.open{display:flex}
 .nav-links .button{justify-content:center}
 .contact-grid{grid-template-columns:1fr;gap:2.5rem}
 .hero{gap:2rem}.about{gap:3rem}
 .services-grid,.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
 .why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}
}
@media(max-width:900px){
 .hero,.about{grid-template-columns:1fr;gap:2.5rem}
 .hero-image{order:-1;max-width:620px;width:100%;justify-self:center}
 .hero-image:before{inset:1rem -.4rem -.4rem 1rem}
 .hero h1{font-size:clamp(2.4rem,7vw,4rem)}
 .quote-grid{grid-template-columns:1fr}.quote{min-height:0}
 .work-head{display:block}.work-head p{margin-top:1rem}
 .about-photo{max-width:620px;justify-self:center;height:auto;max-height:600px;object-fit:cover}
}
@media(max-width:782px){.admin-bar .site-header{top:46px}}
@media(max-width:600px){
 .hero,.services,.about,.why,.work,.testimonials,.contact{padding-top:3.5rem;padding-bottom:3.5rem}
 .services-grid,.gallery,.why-grid,.footer-grid{grid-template-columns:minmax(0,1fr)}
 .form{grid-template-columns:minmax(0,1fr)}
 .hero h1{font-size:clamp(2.2rem,10vw,3.35rem)}
 .section-title{font-size:clamp(2rem,8vw,2.7rem)}
 .contact-title{font-size:clamp(2.2rem,9vw,3.2rem)}
 .service,.why-card,.quote{padding:1.5rem}
 .nav{gap:.5rem;padding-left:1rem;padding-right:1rem}
 .nav .brand{font-size:clamp(1rem,5vw,1.55rem)}
 .nav .brand small{font-size:.45rem;letter-spacing:.1em}
 .nav .custom-logo-link{max-width:calc(100% - 76px)}
 .hero-actions{display:flex;flex-direction:column;align-items:stretch}
 .footer-business-logo img{max-width:min(240px,100%)}
 .legal{display:block}.footer-credits{margin-top:1rem;gap:.75rem 1rem}
 .admin-bar .site-header{top:0}
}

/* Mobile menu icon; the button retains its accessible name and expanded state. */
.menu-icon{display:block;position:relative;width:24px;height:20px;margin:auto}
.menu-icon span{position:absolute;left:0;width:24px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s,opacity .2s}
.menu-icon span:nth-child(1){top:1px}
.menu-icon span:nth-child(2){top:9px}
.menu-icon span:nth-child(3){top:17px}
.menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
