/*
Theme Name: Galloway Kitchens
Description: A responsive custom theme for kitchens, bedroom cupboards and home bars, with private enquiry management.
Author: Galloway Kitchens
Version: 1.3.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: galloway-kitchens
Tags: custom-logo, featured-images, accessibility-ready, one-column
*/

:root { --ink:#28312d; --forest:#385044; --deep:#26382f; --sage:#9aa49c; --cream:#ded9d0; --paper:#e9e5dd; --surface:#d8d4cb; --line:#bebbb3; --gold:#a8814e; --white:#f8f6f1; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:88px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; -webkit-font-smoothing:antialiased; }
button,input,select,textarea { font:inherit; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; height:auto; }
.skip-link { position:fixed; top:8px; left:8px; z-index:99999; padding:12px 16px; color:#fff; background:#000; transform:translateY(-150%); }
.skip-link:focus { transform:translateY(0); }
.site-header { height:88px; padding:0 clamp(24px,5vw,76px); display:flex; align-items:center; justify-content:space-between; background:rgba(233,229,221,.97); position:absolute; z-index:20; width:100%; color:var(--ink); border-bottom:1px solid rgba(40,49,45,.12); }
.admin-bar .site-header { top:32px; }
.brand { display:flex; align-items:center; gap:13px; font-family:Georgia,serif; font-size:21px; letter-spacing:-.02em; }
.brand b { font-weight:400; color:#667069; }
.brand-mark { display:grid; place-items:center; width:39px; height:39px; border:1px solid currentColor; border-radius:50%; font:700 11px Arial,sans-serif; letter-spacing:.08em; }
.site-header nav { display:flex; align-items:center; gap:34px; font-size:13px; }
.site-header nav a { transition:opacity .2s; }
.site-header nav a:hover,.site-header nav a:focus-visible { opacity:.58; }
.nav-cta { color:var(--white); background:var(--forest); padding:14px 20px; }
.menu-button { display:none; background:none; border:0; padding:10px; cursor:pointer; }
.menu-button span { display:block; width:24px; height:2px; background:var(--ink); margin:5px; transition:transform .2s,opacity .2s; }
.menu-button[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.menu-button[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.menu-button[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.hero { min-height:760px; height:100vh; position:relative; display:flex; align-items:center; overflow:hidden; color:var(--white); padding-top:88px; }
.hero-image { position:absolute; inset:88px 0 0; background:url('assets/images/galloway-kitchen-hero.png') 56% center/cover no-repeat; transform:scale(1.005); }
.hero-shade { position:absolute; inset:88px 0 0; background:linear-gradient(90deg,rgba(12,20,16,.92) 0%,rgba(12,20,16,.7) 38%,rgba(12,20,16,.42) 72%,rgba(12,20,16,.5) 100%); }
.hero-content { position:relative; z-index:2; margin-left:clamp(24px,8vw,124px); width:min(670px,78vw); }
.eyebrow { margin:0 0 23px; text-transform:uppercase; font-size:11px; line-height:1.4; letter-spacing:.24em; font-weight:700; }
.eyebrow::before { content:""; display:inline-block; width:32px; height:1px; background:var(--gold); margin:0 13px 4px 0; }
.eyebrow.light { color:#dedfd9; }
h1,h2,blockquote { font-family:Georgia,'Times New Roman',serif; font-weight:400; }
.hero h1 { font-size:clamp(58px,7.4vw,112px); line-height:.91; letter-spacing:-.055em; margin:0 0 30px; }
.hero-copy { font:18px/1.65 Georgia,serif; max-width:560px; color:#e1e1dc; }
.hero-actions { margin-top:40px; display:flex; gap:28px; align-items:center; flex-wrap:wrap; }
.button { border:0; display:inline-flex; justify-content:center; align-items:center; gap:32px; padding:18px 22px; font-size:12px; font-weight:700; letter-spacing:.04em; cursor:pointer; transition:transform .2s,background .2s; }
.button:hover,.button:focus-visible { transform:translateY(-2px); }
.button-light { color:var(--ink); background:#e7e2d9; }
.button-dark { color:var(--white); background:var(--deep); width:100%; }
.text-link { display:inline-flex; gap:18px; align-items:center; padding-bottom:5px; border-bottom:1px solid #758078; text-transform:uppercase; font-size:10px; letter-spacing:.16em; font-weight:700; }
.text-link.light { border-color:#cfd2ce; }
.scroll-cue { position:absolute; z-index:2; bottom:34px; right:5vw; font-size:9px; letter-spacing:.22em; writing-mode:vertical-rl; display:flex; gap:12px; align-items:center; }
.scroll-cue span { font-size:16px; }
.image-note { position:absolute; z-index:2; bottom:25px; left:clamp(24px,8vw,124px); font-size:9px; letter-spacing:.06em; color:#cfd2ce; }
.section { padding:120px clamp(24px,8vw,124px); }
.intro { background:var(--paper); }
.intro-grid { display:grid; grid-template-columns:1.3fr .7fr; gap:9vw; align-items:end; }
.intro h2,.section-heading h2,.process h2,.faq h2,.enquiry h2 { font-size:clamp(42px,5vw,76px); line-height:1.02; letter-spacing:-.045em; margin:0; }
.intro h2 em { color:#809082; font-weight:400; }
.intro-copy { max-width:500px; font:17px/1.75 Georgia,serif; color:#58635c; }
.intro-copy p { margin:0 0 20px; }
.intro-copy .text-link { margin-top:22px; color:var(--ink); font:700 10px Arial,sans-serif; }
.services { background:var(--surface); }
.section-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:58px; gap:30px; }
.section-heading>p { max-width:390px; color:#657068; line-height:1.65; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#b9b6ae; }
.service-card { min-height:540px; padding:32px; display:flex; flex-direction:column; justify-content:space-between; color:var(--white); position:relative; overflow:hidden; }
.service-card::before { content:""; position:absolute; inset:0; z-index:0; transition:transform .5s; }
.service-card:hover::before { transform:scale(1.03); }
.service-kitchen::before { background:linear-gradient(180deg,rgba(20,30,25,.2),rgba(16,27,22,.9)),url('assets/images/service-kitchen-v2.webp') center/cover no-repeat; }
.service-bedroom::before { background:linear-gradient(180deg,rgba(20,30,25,.2),rgba(16,27,22,.9)),url('assets/images/service-bedroom-v2.webp') center/cover no-repeat; }
.service-bar::before { background:linear-gradient(180deg,rgba(20,30,25,.18),rgba(16,27,22,.9)),url('assets/images/service-bar-v2.webp') center/cover no-repeat; }
.service-card>* { position:relative; z-index:1; }
.service-top { display:flex; justify-content:space-between; font-size:11px; letter-spacing:.15em; }
.service-symbol { font-size:30px; font-weight:200; }
.service-card h3 { font:34px Georgia,serif; margin:0 0 18px; }
.service-card p { max-width:370px; color:#e3e5e1; line-height:1.65; font-size:14px; }
.service-card ul { list-style:none; margin:28px 0 0; padding:17px 0 0; display:flex; flex-wrap:wrap; gap:8px; border-top:1px solid rgba(255,255,255,.32); }
.service-card li { border:1px solid rgba(255,255,255,.45); border-radius:100px; padding:7px 10px; font-size:9px; letter-spacing:.06em; text-transform:uppercase; }
.manifesto { padding:130px clamp(24px,8vw,124px); background:var(--deep); color:var(--white); text-align:center; }
.manifesto blockquote { font-size:clamp(36px,5vw,72px); line-height:1.17; letter-spacing:-.035em; margin:50px auto 100px; }
.manifesto blockquote em { color:#a6b5a8; }
.value-grid { border-top:1px solid #476056; display:grid; grid-template-columns:repeat(3,1fr); text-align:left; }
.value-grid>div { padding:40px 6vw 0 0; }
.value-grid span { color:var(--gold); font-size:10px; letter-spacing:.15em; }
.value-grid h3 { font:24px Georgia,serif; margin:18px 0 12px; }
.value-grid p { font-size:13px; line-height:1.7; color:#b9c1bc; }
.process { background:var(--paper); }
.process-list { border-top:1px solid var(--line); }
.process-list article { display:grid; grid-template-columns:80px 1fr 1.4fr 40px; align-items:center; gap:30px; padding:33px 5px; border-bottom:1px solid var(--line); }
.process-list span { font-size:10px; color:#839087; letter-spacing:.1em; }
.process-list h3 { font:27px Georgia,serif; margin:0; }
.process-list p { font-size:13px; line-height:1.65; color:#667069; max-width:480px; }
.process-list i { font-style:normal; font-size:22px; }
.faq { display:grid; grid-template-columns:.7fr 1.3fr; gap:10vw; background:var(--surface); }
.faq-intro { max-width:340px; color:#647068; line-height:1.7; }
.faq-list { border-top:1px solid #bfc1b9; }
.faq details { border-bottom:1px solid #bfc1b9; padding:23px 0; }
.faq summary { cursor:pointer; list-style:none; font:20px Georgia,serif; display:flex; justify-content:space-between; gap:30px; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary span { font:300 22px Arial,sans-serif; transition:transform .2s; }
.faq details[open] summary span { transform:rotate(45deg); }
.faq details p { color:#5e6a62; line-height:1.7; font-size:14px; max-width:690px; padding-right:60px; }
.enquiry { display:grid; grid-template-columns:.85fr 1.15fr; background:var(--forest); color:var(--white); }
.enquiry-copy { padding:120px 7vw 100px 8vw; background:var(--deep); }
.enquiry-copy>p { max-width:440px; color:#bac3be; line-height:1.7; }
.enquiry-note { display:flex; gap:18px; border-top:1px solid #435a50; margin-top:65px; padding-top:26px; font-size:12px; color:#bbc5bf; line-height:1.65; }
.enquiry-note span { color:var(--gold); }
.enquiry-note p { margin:0; }
.enquiry-form { padding:110px 8vw 90px 6vw; display:flex; flex-direction:column; gap:25px; }
.field-pair { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.enquiry-form label { display:flex; flex-direction:column; gap:10px; font-size:10px; text-transform:uppercase; letter-spacing:.13em; color:#dbe1dd; }
.enquiry-form input,.enquiry-form select,.enquiry-form textarea { width:100%; color:var(--white); background:transparent; border:0; border-bottom:1px solid #819489; border-radius:0; padding:10px 0 14px; outline:none; resize:vertical; text-transform:none; letter-spacing:0; }
.enquiry-form select { color:var(--white); }
.enquiry-form option { color:var(--ink); }
.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus { border-color:#fff; }
.enquiry-form ::placeholder { color:#91a39a; opacity:1; }
.form-small { margin:-9px 0 0; font-size:10px; line-height:1.5; color:#9eb0a6; }
.form-small a { text-decoration:underline; }
.honeypot { position:absolute!important; left:-9999px!important; }
.form-status { min-height:28px; }
.form-status p { margin:0; padding:11px; font-size:12px; }
.success { background:#2a5944; }
.error { background:#743c3c; }
.site-footer { background:#1d2c25; color:#b8c0bb; padding:60px clamp(24px,8vw,124px) 34px; display:grid; grid-template-columns:1fr auto; gap:34px; align-items:center; }
.footer-brand { color:var(--white); }
.site-footer>p { text-align:right; font:15px Georgia,serif; }
.footer-links { display:flex; gap:28px; font-size:11px; }
.site-footer small { text-align:right; font-size:9px; letter-spacing:.08em; }
.footer-contact { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:12px 30px; padding-top:22px; border-top:1px solid #31463d; font-style:normal; font-size:12px; }
.back-to-top { position:fixed; right:clamp(18px,3vw,38px); bottom:clamp(18px,3vw,38px); z-index:60; display:grid; place-items:center; width:52px; height:52px; border:1px solid rgba(248,246,241,.45); border-radius:50%; background:var(--forest); color:var(--white); box-shadow:0 10px 28px rgba(25,35,30,.28); font:24px/1 Arial,sans-serif; transition:opacity .2s,transform .2s,background .2s; }
.back-to-top:hover,.back-to-top:focus-visible { background:var(--deep); transform:translateY(-3px); }
.back-to-top:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.has-back-to-top .back-to-top { opacity:0; pointer-events:none; transform:translateY(12px); }
.has-back-to-top .back-to-top.is-visible { opacity:1; pointer-events:auto; transform:translateY(0); }
.content-shell { min-height:70vh; padding:160px clamp(24px,8vw,124px) 100px; }
.content-card { max-width:850px; margin:0 auto 42px; }
.content-card h1 { font-size:clamp(42px,6vw,72px); line-height:1.05; letter-spacing:-.04em; }
.entry-content { font:17px/1.75 Georgia,serif; color:#4f5c54; }
.entry-content a { text-decoration:underline; }
@media (max-width:900px) {
	.site-header { height:72px; position:absolute; }
	.admin-bar .site-header { top:32px; }
	.hero { padding-top:72px; }
	.hero-image,.hero-shade { inset:72px 0 0; }
	.menu-button { display:block; z-index:2; }
	.site-header nav { position:absolute; top:72px; left:0; right:0; background:var(--paper); padding:16px 24px 24px; flex-direction:column; align-items:stretch; gap:0; border-bottom:1px solid var(--line); box-shadow:0 18px 34px rgba(25,35,30,.16); }
	.site-header nav a { padding:15px 4px; border-bottom:1px solid var(--line); }
	.site-header nav .nav-cta { margin-top:12px; padding:15px 18px; border-bottom:0; }
	.site-header.menu-ready nav { display:none; }
	.site-header.menu-ready nav.nav-open { display:flex; }
	.nav-cta { text-align:center; }
	.hero-content { width:calc(100% - 48px); margin:0 24px; }
	.hero-shade { background:linear-gradient(90deg,rgba(12,20,16,.9),rgba(12,20,16,.55)); }
	.scroll-cue { display:none; }
	.intro-grid,.faq,.enquiry { grid-template-columns:1fr; }
	.intro-grid { gap:45px; }
	.service-grid { grid-template-columns:1fr; }
	.service-card { min-height:440px; }
	.value-grid { grid-template-columns:1fr; gap:38px; }
	.manifesto blockquote { margin-bottom:70px; }
	.process-list article { grid-template-columns:45px 1fr 30px; }
	.process-list p { grid-column:2/4; margin:0; }
	.section-heading { align-items:start; flex-direction:column; }
	.enquiry-copy,.enquiry-form { padding:85px 7vw; }
	.site-footer { grid-template-columns:1fr; }
	.site-footer>p,.site-footer small { text-align:left; }
	.footer-contact { grid-column:auto; }
}
@media (max-width:782px) { .admin-bar .site-header { top:46px; } }
@media (max-width:600px) { .admin-bar .site-header { top:0; } }
@media (max-width:560px) {
	.section { padding:85px 24px; }
	.hero { min-height:720px; }
	.hero-content { padding-top:20px; }
	.hero-copy { font-size:16px; }
	.image-note { left:24px; }
	.field-pair { grid-template-columns:1fr; }
	.enquiry-copy,.enquiry-form { padding:75px 24px; }
	.footer-links { flex-wrap:wrap; }
	.intro h2 br { display:none; }
	.back-to-top { width:46px; height:46px; font-size:21px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
