/* Larder main stylesheet. Colours come from CSS variables set in the Customizer. */
:root{
	--l-accent:#2F6B57;--l-accent-alt:#B8893B;--l-ink:#1B2523;--l-surface:#EDF0EC;
	--l-muted:#5E6A67;--l-line:#D9DED9;--l-white:#FFFFFF;
	--l-radius:6px;--l-gap:clamp(1.25rem,3vw,2rem);
	--l-font-head:"Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",sans-serif;
	--l-font-body:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
	--l-header-h:84px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--l-font-body);font-size:1.0625rem;line-height:1.65;color:var(--l-ink);background:var(--l-white);-webkit-font-smoothing:antialiased}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--l-accent);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--l-ink)}
:focus-visible{outline:2px solid var(--l-accent);outline-offset:3px}
h1,h2,h3,h4,h5,h6{font-family:var(--l-font-head);font-weight:600;line-height:1.1;letter-spacing:-.02em;margin:0 0 .6em;color:var(--l-ink)}
h1{font-size:clamp(2.4rem,5vw,4rem)}
h2{font-size:clamp(2rem,3.6vw,3rem)}
h3{font-size:clamp(1.3rem,2vw,1.6rem)}
p{margin:0 0 1.2em}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal}
.skip-link:focus{clip:auto;clip-path:none;height:auto;width:auto;background:var(--l-ink);color:#fff;padding:.75rem 1rem;z-index:1000;top:8px;left:8px}
.container{width:min(100% - 2.5rem,1240px);margin-inline:auto}
.section{padding-block:clamp(3rem,7vw,6rem)}
.site-main{display:block}

/* Buttons */
.btn,.wp-block-button__link,input[type=submit],button.button,.wpcf7-submit{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.95rem 1.7rem;background:var(--l-accent);color:#fff;font:600 1rem/1 var(--l-font-body);border:2px solid var(--l-accent);border-radius:var(--l-radius);text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.btn:hover,.wp-block-button__link:hover,input[type=submit]:hover,button.button:hover,.wpcf7-submit:hover{background:var(--l-ink);border-color:var(--l-ink);color:#fff}
.btn--small{padding:.7rem 1.2rem;font-size:.95rem}
.btn--light{background:#fff;color:var(--l-ink);border-color:#fff}
.btn--light:hover{background:var(--l-accent-alt);border-color:var(--l-accent-alt);color:var(--l-ink)}

/* Header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--l-line)}
.admin-bar .site-header{top:32px}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;min-height:var(--l-header-h);gap:2rem}
.site-title{font:700 1.7rem/1 var(--l-font-head);letter-spacing:-.03em;color:var(--l-ink);text-decoration:none}
.custom-logo{max-height:52px;width:auto}
.primary-nav{display:flex;align-items:center;gap:2rem}
.primary-nav .menu,.footer-menu{list-style:none;margin:0;padding:0;display:flex;gap:2rem}
.primary-nav a{color:var(--l-ink);text-decoration:none;font-weight:500;padding:.4rem 0;background:linear-gradient(var(--l-accent),var(--l-accent)) 0 100%/0 2px no-repeat;transition:background-size .25s}
.primary-nav a:hover,.primary-nav .current-menu-item>a,.primary-nav .current_page_item>a{background-size:100% 2px}
.primary-nav .menu-item-has-children,.primary-nav .page_item_has_children{position:relative}
.primary-nav .sub-menu,.primary-nav .children{list-style:none;margin:0;padding:.75rem;position:absolute;left:-.75rem;top:100%;min-width:220px;background:#fff;border:1px solid var(--l-line);border-radius:var(--l-radius);box-shadow:0 18px 40px -20px rgba(27,37,35,.35);opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s}
.primary-nav li:hover>.sub-menu,.primary-nav li:focus-within>.sub-menu,.primary-nav li:hover>.children,.primary-nav li:focus-within>.children{opacity:1;visibility:visible;transform:none}
.primary-nav .sub-menu a,.primary-nav .children a{display:block;padding:.5rem .75rem;background:none}
.nav-toggle{display:none;width:44px;height:44px;border:1px solid var(--l-line);background:#fff;border-radius:var(--l-radius);cursor:pointer;position:relative}
.nav-toggle__bars,.nav-toggle__bars::before,.nav-toggle__bars::after{content:"";position:absolute;left:12px;right:12px;height:2px;background:var(--l-ink);transition:.2s}
.nav-toggle__bars{top:50%;margin-top:-1px}
.nav-toggle__bars::before{left:0;right:0;top:-6px}
.nav-toggle__bars::after{left:0;right:0;top:6px}
.nav-toggle[aria-expanded=true] .nav-toggle__bars{background:transparent}
.nav-toggle[aria-expanded=true] .nav-toggle__bars::before{top:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded=true] .nav-toggle__bars::after{top:0;transform:rotate(-45deg)}

@media (max-width:960px){
	.nav-toggle{display:block}
	.primary-nav{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid var(--l-line);padding:1rem 1.25rem 1.5rem;display:none;max-height:calc(100vh - var(--l-header-h));overflow:auto}
	.primary-nav.is-open{display:flex}
	.primary-nav .menu{flex-direction:column;gap:0}
	.primary-nav .menu a{display:block;padding:.9rem 0;border-bottom:1px solid var(--l-line);background:none}
	.primary-nav .sub-menu,.primary-nav .children{position:static;opacity:1;visibility:visible;transform:none;border:0;box-shadow:none;padding:0 0 0 1rem}
	.nav-cta{margin-top:1rem}
	.admin-bar .site-header{top:46px}
}

/* Page banner */
.page-banner{background:var(--l-surface);padding-block:clamp(3rem,8vw,6rem);text-align:center}
.page-banner__title{margin:0}
.page-banner__desc{max-width:60ch;margin:1rem auto 0;color:var(--l-muted)}

/* Layout */
.layout{display:grid;grid-template-columns:minmax(0,1fr);gap:3rem;padding-block:clamp(3rem,6vw,5rem)}
body:not(.no-sidebar) .layout:has(.layout__side){grid-template-columns:minmax(0,1fr) 320px}
@media (max-width:960px){body:not(.no-sidebar) .layout:has(.layout__side){grid-template-columns:minmax(0,1fr)}}
.entry--narrow{max-width:760px;margin-inline:auto}
.entry__meta,.l-card__meta{display:flex;gap:1rem;color:var(--l-muted);font-size:.9rem}
.entry__thumb{margin:1.5rem 0 2.5rem;border-radius:var(--l-radius);overflow:hidden}
.entry__content>*+*{margin-top:1.2em}
.entry__content img{border-radius:var(--l-radius)}
.alignwide{width:min(100vw - 2.5rem,1240px);margin-inline:calc(50% - min(100vw - 2.5rem,1240px)/2)}
.alignfull{width:100vw;margin-inline:calc(50% - 50vw)}

/* Grids and cards */
.l-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--l-gap)}
@media (max-width:960px){.l-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.l-grid{grid-template-columns:minmax(0,1fr)}}
.l-card__media{display:block;overflow:hidden;border-radius:var(--l-radius);background:var(--l-surface);aspect-ratio:4/5}
.l-card--post .l-card__media{aspect-ratio:4/3}
.l-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.l-card:hover .l-card__media img{transform:scale(1.04)}
.l-card__row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-top:1.1rem}
.l-card__title{font-size:clamp(1.3rem,2vw,1.75rem);margin:1.1rem 0 .4rem}
.l-card__row .l-card__title{margin:0}
.l-card__title a{color:inherit;text-decoration:none}
.l-card__price{font:600 1.25rem var(--l-font-head);color:var(--l-accent);margin-top:.35rem}
.l-card__facts{display:flex;justify-content:space-between;gap:1rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--l-line);color:var(--l-muted);font-size:.95rem}
.l-card__cat{display:block;margin-top:1rem;color:var(--l-accent);font-weight:600;font-size:.9rem}
.l-card__arrow{flex:none;width:22px;height:22px;margin-top:.4rem;background:currentColor;-webkit-mask:var(--l-arrow) center/contain no-repeat;mask:var(--l-arrow) center/contain no-repeat;transition:transform .25s}
.l-card:hover .l-card__arrow{transform:translate(3px,-3px)}
:root{--l-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E")}
.l-empty{padding:2rem;background:var(--l-surface);border-radius:var(--l-radius);text-align:center;color:var(--l-muted)}

/* Service cards */
.l-service{display:flex;flex-direction:column;gap:.6rem;padding:2.2rem 2rem;background:var(--l-white);border:1px solid var(--l-line);border-radius:var(--l-radius);color:var(--l-ink);text-decoration:none;position:relative;transition:border-color .25s,transform .25s}
a.l-service:hover{border-color:var(--l-accent);transform:translateY(-3px);color:var(--l-ink)}
.l-service__icon{font-size:2.2rem;line-height:1;color:var(--l-accent);margin-bottom:.8rem}
.l-service__icon svg{width:2.2rem;height:2.2rem;fill:currentColor}
.l-service__title{margin:0;font-size:1.35rem}
.l-service__text{margin:0;color:var(--l-muted);font-size:1rem}
.l-service__more{margin-top:auto;width:22px;height:22px;background:var(--l-accent);-webkit-mask:var(--l-arrow) center/contain no-repeat;mask:var(--l-arrow) center/contain no-repeat}

/* Stats */
.l-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem}
.l-stat__num{font:600 clamp(2.6rem,5vw,4.5rem)/1 var(--l-font-head);letter-spacing:-.03em;color:var(--l-accent-alt)}
.l-stat__label{margin-top:.5rem;color:var(--l-muted)}
.dark .l-stat__label,.l-dark .l-stat__label{color:rgba(255,255,255,.72)}

/* Filters */
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem}
.filters a{padding:.5rem 1.1rem;border:1px solid var(--l-line);border-radius:99px;color:var(--l-ink);text-decoration:none;font-weight:500}
.filters a:hover,.filters a.is-active{background:var(--l-ink);border-color:var(--l-ink);color:#fff}
.project-single__facts{display:flex;flex-wrap:wrap;gap:2.5rem;margin:0 auto 2.5rem;padding-block:1.5rem;border-block:1px solid var(--l-line)}
.project-single__facts span{display:block;color:var(--l-muted);font-size:.9rem}
.project-single__facts strong{font:600 1.3rem var(--l-font-head)}

/* Footer */
.site-footer{background:var(--l-ink);color:rgba(255,255,255,.78);padding-top:clamp(3rem,6vw,5rem)}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{color:var(--l-accent-alt)}
.site-footer .widget-title,.site-footer h3{color:#fff;font-size:1.2rem;margin-bottom:1.2rem}
.site-footer address{font-style:normal;margin-bottom:1rem}
.site-footer__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2.5rem;padding-bottom:3rem}
.footer-menu{flex-direction:column;gap:.6rem}
.site-footer__bottom{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:1px solid rgba(255,255,255,.14);padding-block:1.5rem;font-size:.95rem}
.site-footer__bottom p{margin:0}
.to-top{width:44px;height:44px;border:1px solid rgba(255,255,255,.3);background:transparent;border-radius:var(--l-radius);cursor:pointer;position:relative;color:#fff}
.to-top::before{content:"";position:absolute;inset:12px;background:currentColor;-webkit-mask:var(--l-arrow) center/contain no-repeat;mask:var(--l-arrow) center/contain no-repeat;transform:rotate(-45deg)}
.to-top:hover{background:var(--l-accent-alt);border-color:var(--l-accent-alt);color:var(--l-ink)}
@media (max-width:960px){.site-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.l-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.site-footer__grid{grid-template-columns:minmax(0,1fr)}}

/* Forms (Contact Form 7, WP forms) */
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=search],input[type=password],input[type=number],select,textarea{width:100%;padding:.9rem 0;font:inherit;color:var(--l-ink);background:transparent;border:0;border-bottom:1px solid var(--l-ink);border-radius:0;transition:border-color .2s}
textarea{min-height:140px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-bottom-color:var(--l-accent);box-shadow:0 1px 0 var(--l-accent)}
::placeholder{color:var(--l-muted);opacity:1}
.wpcf7 p{margin-bottom:1.2rem}
.wpcf7-not-valid-tip{color:#B3261E;font-size:.9rem}
.wpcf7-response-output{border-radius:var(--l-radius)!important;margin:1rem 0 0!important}
.search-form{display:flex;gap:.5rem;align-items:flex-end;max-width:480px}

/* Widgets, pagination, comments */
.sidebar .widget{margin-bottom:2.5rem}
.widget-title{font-size:1.2rem}
.widget ul{padding-left:1.1rem}
.pagination{margin-top:3rem}
.pagination .nav-links{display:flex;gap:.5rem;flex-wrap:wrap}
.page-numbers{padding:.55rem 1rem;border:1px solid var(--l-line);border-radius:var(--l-radius);text-decoration:none;color:var(--l-ink)}
.page-numbers.current,.page-numbers:hover{background:var(--l-ink);color:#fff;border-color:var(--l-ink)}
.comments{margin-top:4rem}
.comment-list{list-style:none;padding:0}
.comment-list .children{list-style:none;padding-left:2rem}
.comment-body{padding:1.2rem 0;border-bottom:1px solid var(--l-line)}
.comment-author img{border-radius:50%;float:left;margin-right:1rem}
.not-found{text-align:center;max-width:640px;margin-inline:auto}
.not-found .search-form{margin:1.5rem auto}

/* Elementor helpers: dark band and soft band classes can be added to any container under Advanced > CSS Classes */
.l-dark{background:var(--l-ink);color:rgba(255,255,255,.8)}
.l-dark h1,.l-dark h2,.l-dark h3,.l-dark h4{color:#fff}
.l-soft{background:var(--l-surface)}
.l-hero-title{font-size:clamp(2.8rem,7vw,6rem);line-height:1.02}
.l-marquee{overflow:hidden;white-space:nowrap}
.l-marquee__track{display:inline-flex;gap:3rem;animation:l-marquee 38s linear infinite;font:600 clamp(3rem,9vw,8rem)/1 var(--l-font-head);letter-spacing:-.03em;color:var(--l-accent)}
@keyframes l-marquee{to{transform:translateX(-50%)}}
.elementor-widget-container .l-grid{margin:0}
.elementor-page .site-main,.elementor-default .site-main{overflow-x:clip}
.e-con>.e-con-inner{max-width:100%}

/* WooCommerce basics */
.woocommerce ul.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--l-gap);margin:0;padding:0;list-style:none}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none}
.woocommerce ul.products li.product{width:auto!important;margin:0!important;float:none!important}
.woocommerce .price{color:var(--l-accent);font-weight:600}
.woocommerce span.onsale{background:var(--l-accent-alt);color:var(--l-ink);border-radius:var(--l-radius)}
@media (max-width:960px){.woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media (prefers-reduced-motion:reduce){
	*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
