@font-face{font-family:'Instrument Serif';src:url('fonts/instrument-serif.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Work Sans';src:url('fonts/work-sans.woff2') format('woff2');font-weight:100 900;font-display:swap}
.wp-site-blocks{padding:0}.wp-block-post-content{margin-block:0}.wp-block-image{margin:0}.wp-block-image img{width:100%;height:100%;object-fit:cover}.wp-block-heading{font-weight:400}body{margin:0}.nua-generic{padding-top:10rem;min-height:70vh}.nua-main{padding-bottom:0}.nua-header.is-solid,.nua-header.menu-open{background:var(--background);color:var(--foreground);backdrop-filter:blur(12px)}.nua-header.is-solid a,.nua-header.is-solid button,.nua-header.menu-open a,.nua-header.menu-open button{color:var(--foreground)}.nua-mobile-menu{padding:1rem 1.25rem;background:var(--background);max-height:calc(100dvh - 80px);overflow:auto}.nua-mobile-menu a{display:block;padding:1rem 0;border-bottom:1px solid var(--border)}[hidden]{display:none!important}.nua-skip{position:fixed;top:-100px;left:20px;z-index:100000;background:var(--background);padding:12px}.nua-skip:focus{top:10px}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.nua-form-message{padding:1rem;border:1px solid var(--accent);margin-bottom:2rem}.nua-honeypot{position:absolute;left:-10000px}.nua-filter-active,[data-filter][aria-pressed=true]{color:var(--accent)}summary{list-style:none;position:relative;padding-right:2rem}summary:after{content:'+';position:absolute;right:0}details[open]>summary:after{content:'−'}.admin-bar .nua-header{top:32px}@media(max-width:782px){.admin-bar .nua-header{top:46px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

.nua-type-option{position:relative;cursor:pointer}.nua-type-option input{position:absolute;opacity:0;width:1px;height:1px}.nua-type-option span{display:block;border:1px solid var(--border);padding:.625rem 1rem;font-size:.8125rem}.nua-type-option input:checked+span{background:var(--charcoal);color:var(--charcoal-foreground);border-color:var(--charcoal)}.nua-type-option input:focus-visible+span{outline:2px solid var(--accent);outline-offset:3px}
.nua-contact .nua-main{padding-bottom:0}

/* Restore the original vertical rhythm inside WordPress flow-layout groups.
   Tailwind's nested :where() spacing selectors lose to WordPress flow resets. */
.wp-block-group.space-y-2 { --nua-stack-gap: .5rem; }
.wp-block-group.space-y-3 { --nua-stack-gap: .75rem; }
.wp-block-group.space-y-4 { --nua-stack-gap: 1rem; }
.wp-block-group.space-y-5 { --nua-stack-gap: 1.25rem; }
.wp-block-group:is(.space-y-2, .space-y-3, .space-y-4, .space-y-5) > :not(:last-child) {
  margin-block-start: 0;
  margin-block-end: var(--nua-stack-gap);
}

/* Header CTA: outlined over photography; solid when the header has a background. */
.nua-header .nua-header-quote {
  background-color: transparent;
  color: var(--charcoal-foreground);
  border: 1px solid color-mix(in oklab, var(--charcoal-foreground) 50%, transparent);
}
.nua-header .nua-header-quote:hover {
  background-color: color-mix(in oklab, var(--charcoal-foreground) 10%, transparent);
  border-color: var(--charcoal-foreground);
}
.nua-header:is(.is-solid, .menu-open) .nua-header-quote {
  background-color: var(--charcoal);
  color: var(--charcoal-foreground);
  border-color: transparent;
}
.nua-header:is(.is-solid, .menu-open) .nua-header-quote:hover {
  background-color: var(--accent);
  color: var(--charcoal-foreground);
  border-color: transparent;
}
.nua-header nav > a:not(.nua-header-quote):hover { color: var(--accent); }

.nua-services-menu{position:relative}
.nua-services-toggle{display:inline-flex;align-items:center;gap:.45rem;cursor:pointer;color:inherit}
.nua-header:not(.is-solid):not(.menu-open) .nua-services-toggle{color:var(--charcoal-foreground)}
.nua-services-toggle:hover,.nua-services-toggle.is-current{color:var(--accent)}
.nua-services-toggle svg,.nua-mobile-services-toggle svg{width:.65rem;height:.45rem;transition:transform .2s ease}
.nua-services-toggle[aria-expanded=true] svg,.nua-mobile-services-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
.nua-services-panel{position:absolute;top:calc(100% + 1.15rem);left:-1.25rem;min-width:15rem;padding:.65rem;background:var(--background);color:var(--foreground);border:1px solid var(--border);box-shadow:0 18px 45px rgb(16 15 14/.16)}
.nua-services-panel:before{content:'';position:absolute;inset:-1.2rem 0 auto;height:1.2rem}
.nua-services-panel a{display:block;padding:.75rem 1rem;color:var(--foreground)!important;font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.nua-services-panel a:hover,.nua-services-panel a[aria-current=page]{background:var(--secondary);color:var(--accent)!important}
.nua-mobile-services-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--border);cursor:pointer;color:inherit}
.nua-mobile-services-panel{padding-left:1rem;border-bottom:1px solid var(--border)}
.nua-mobile-services-panel a{border-bottom:0;padding:.8rem 0;color:var(--muted-foreground)!important}
.nua-mobile-services-panel a[aria-current=page]{color:var(--accent)!important}

/* Keep the original underline focus treatment on text fields, not a square ring.
   Buttons, links and radio choices retain their keyboard-focus indicators. */
.nua-quote-form :is(input:not([type="radio"]):not([type="hidden"]):not([type="file"]), textarea, select):focus {
  outline: none;
  box-shadow: none;
  border-color: var(--accent);
}

.nua-project-list{margin-top:3rem}.nua-project-filters{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;border-top:1px solid var(--border);padding-top:1.5rem;margin-bottom:3.5rem}.nua-project-filters button{font-size:.75rem;text-transform:uppercase;letter-spacing:.16em;cursor:pointer;color:var(--muted-foreground)}.nua-project-filters button[aria-pressed=true],.nua-project-filters button:hover{color:var(--accent)}.nua-project-grid{display:grid;gap:3.5rem 1.5rem;grid-template-columns:minmax(0,1fr)}.nua-project-grid article{min-width:0}.nua-project-card img{display:block;width:100%;height:100%;object-fit:cover}.nua-project-image-placeholder{aspect-ratio:4/3;background:var(--stone)}.nua-project-empty{margin-top:2rem;color:var(--muted-foreground)}.nua-project-hero{background:var(--charcoal);z-index:0}.nua-project-hero>img{height:100%;width:100%;object-fit:cover}@media(min-width:640px){.nua-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.nua-project-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}

.nua-faq-heading{margin:0}.nua-faq-toggle{position:relative;display:block;width:100%;padding-right:2rem;cursor:pointer;text-align:left;color:inherit;background:none;border:0}.nua-faq-toggle:after{content:'+';position:absolute;right:0;top:0;font-family:var(--font-sans);font-size:1rem;color:var(--muted-foreground)}.nua-faq-item.is-open .nua-faq-toggle:after{content:'−'}.nua-faq-grid{display:grid;grid-template-rows:0fr;transition:grid-template-rows 400ms cubic-bezier(.16,1,.3,1)}.nua-faq-item.is-open .nua-faq-grid{grid-template-rows:1fr}.nua-faq-inner{min-height:0;overflow:hidden;visibility:hidden;transition:visibility 0s 400ms}.nua-faq-item.is-open .nua-faq-inner{visibility:visible;transition-delay:0s}@media(prefers-reduced-motion:reduce){.nua-faq-grid,.nua-faq-inner{transition:none}}
.nua-social-links{display:flex;gap:.75rem;margin-top:1.5rem}.nua-social-links a{display:inline-flex;width:2.75rem;height:2.75rem;align-items:center;justify-content:center;border-radius:.25rem;background:rgb(255 255 255/.08);color:var(--charcoal-foreground);transition:background-color .2s ease,color .2s ease,transform .2s ease}.nua-social-links a:hover{background:var(--timber);color:var(--charcoal);transform:translateY(-2px)}.nua-social-links a:focus-visible{outline:2px solid var(--timber);outline-offset:3px}.nua-social-links svg{width:1.2rem;height:1.2rem}

.nua-whatsapp{position:fixed;right:1.5rem;bottom:1.5rem;z-index:50;display:flex;width:3.5rem;height:3.5rem;align-items:center;justify-content:center;border-radius:999px;background:#25d366;color:#fff;box-shadow:0 12px 30px rgb(0 0 0/.22);transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}
.nua-whatsapp:hover{background:#1ebe5d;color:#fff;transform:translateY(-2px);box-shadow:0 16px 34px rgb(0 0 0/.28)}
.nua-whatsapp:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.nua-whatsapp svg{width:1.9rem;height:1.9rem}
@media(max-width:1023px){.nua-whatsapp{right:1rem;bottom:max(1rem,env(safe-area-inset-bottom))}}
.nua-contact .nua-whatsapp{bottom:1.25rem}

.nua-project-lightbox{cursor:zoom-in}
.glightbox-container .gslide-media{box-shadow:none}
.glightbox-clean .gclose,.glightbox-clean .gnext,.glightbox-clean .gprev{background-color:rgb(16 15 14/.72);border:1px solid rgb(255 255 255/.35);border-radius:999px}
.glightbox-clean .gclose:hover,.glightbox-clean .gnext:hover,.glightbox-clean .gprev:hover{background-color:rgb(255 255 255/.16);border-color:#fff}

/* Native Gutenberg controls retain the page design in the editor and frontend. */
.wp-block-buttons.nua-native-buttons{gap:1rem;margin:0}
.wp-block-button.nua-native-button{margin:0}
.nua-native-button .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 1.75rem;border:0;border-radius:0;background:var(--charcoal);color:var(--charcoal-foreground);font-family:var(--font-sans);font-size:.8125rem;font-weight:500;line-height:inherit;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;transition:background-color .3s,color .3s,border-color .3s}
.nua-button-primary .wp-block-button__link:hover{background:var(--accent);color:var(--charcoal-foreground)}
.nua-button-outline .wp-block-button__link{border:1px solid color-mix(in oklab,var(--charcoal-foreground) 50%,transparent);background:transparent;color:var(--charcoal-foreground);backdrop-filter:blur(2px)}
.nua-button-outline .wp-block-button__link:hover{border-color:var(--charcoal-foreground);background:color-mix(in oklab,var(--charcoal-foreground) 10%,transparent)}
.nua-button-text .wp-block-button__link{padding:0;background:transparent;color:var(--foreground);text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:6px}
.nua-button-text .wp-block-button__link:hover{text-decoration-color:var(--accent)}
.nua-native-button .wp-block-button__link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.nua-native-card .wp-block-image a{display:block;height:100%}
.nua-native-card .wp-block-heading a{color:inherit;text-decoration:none}
.nua-card-title-arrow{width:100%;display:flex;justify-content:space-between;align-items:start;gap:1rem}
.nua-card-title-arrow:after{content:'↗';font-family:var(--font-sans);font-size:1.25rem;line-height:1.5;color:var(--muted-foreground)}
.nua-native-card:hover .nua-card-title-arrow:after{color:var(--accent)}
.wp-block-list.nua-native-list{list-style:none;padding-inline-start:0}
.wp-block-details>summary,.wp-block-details .nua-faq-toggle{font-family:var(--font-display);font-size:1.375rem;font-weight:400;line-height:inherit;text-align:left;cursor:pointer}

/* Light-surface outline variant from the original Lovable CTA. */
.nua-button-outline-dark .wp-block-button__link{padding:.75rem 1.25rem;border:1px solid var(--border);background:transparent;color:var(--foreground);backdrop-filter:none}
.nua-button-outline-dark .wp-block-button__link:hover{border-color:var(--foreground);background:transparent;color:var(--foreground)}
.nua-footer-content{padding-bottom:2rem}
.nua-card-title-arrow a{color:inherit;text-decoration:none}
@media(min-width:1024px){.lg\:col-span-6{grid-column:span 6 / span 6}}
@media(max-width:1023px){
  .nua-main{padding-bottom:0}
  .nua-header .nua-mobile-menu .nua-header-quote{display:flex;align-items:center;justify-content:center;width:100%;min-height:3.25rem;margin-top:1rem;padding:.875rem 1.25rem;text-align:center;border:1px solid transparent}
  .nua-mobile-menu a,.nua-mobile-services-toggle{transition:background-color .2s,color .2s,padding-left .2s}
  .nua-mobile-menu>a:not(.nua-header-quote):is(:hover,:focus-visible,:active),.nua-mobile-services-toggle:is(:hover,:focus-visible,:active){color:var(--accent);background:var(--secondary)}
  .nua-header .nua-mobile-services-panel a:is(:hover,:focus-visible,:active),.nua-header .nua-mobile-services-panel a[aria-current=page]{padding-left:.75rem;background:var(--secondary);color:var(--accent)!important}
  .nua-mobile-services-panel:not([hidden]){animation:nua-submenu-in .2s ease-out}
  .nua-mobile-menu{max-height:calc(100dvh - 80px - var(--wp-admin--admin-bar--height,0px))}
  .nua-cta-layout{min-height:0;padding-top:4rem;padding-bottom:4rem}
  .nua-faq-layout{row-gap:1.5rem}
  .nua-faq-layout .nua-faq-item:first-child,.nua-faq-layout .wp-block-details:first-child{padding-top:0}
}
@keyframes nua-submenu-in{from{opacity:0;transform:translateY(-.35rem)}to{opacity:1;transform:translateY(0)}}
