:root {
    --black: #090a08;
    --panel: #10110e;
    --panel-2: #151611;

    --gold: #B99A3C;
    --gold-light: #D0B85A;
    --gold-pale: #E0CD83;

    --text: #f1ede4;
    --muted: #b6b0a5;

    --line: rgba(185, 154, 60, .52);
    --line-soft: rgba(185, 154, 60, .22);

    --max: 1440px;
}

* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth
}

body {
    margin:0;
    color:var(--text);
    background-color:#090a08;
    background-image:     linear-gradient(rgba(7,8,6,.96),rgba(7,8,6,.96));
    background-repeat:no-repeat;
    background-position:center;
    background-attachment:fixed;
    font-family:Inter,Arial,Helvetica,sans-serif;
    line-height:1.65;
}

img {
    max-width:100%;
    display:block
}

a {
    text-decoration:none;
    color:inherit
}

button,input,select,textarea {
    font:inherit
}

button {
    cursor:pointer
}

.container {
    width:min(var(--max),94vw);
    margin:auto
}

.skip {
    position:absolute;
    left:-9999px
}

.skip:focus {
    left:1rem;
    top:1rem;
    z-index:9999;
    padding:.8rem 1rem;
    background:var(--gold-light);
    color:#111
}

h1,h2,h3,h4 {
    font-family:"Cormorant Garamond",Georgia,serif;
    margin-top:0;
    line-height:1.05;
    font-weight:500
}

h1 {
    font-size:clamp(3.3rem,6vw,6.8rem);
    letter-spacing:.025em
}

h2 {
    font-size:clamp(2.5rem,4vw,4.6rem);
    letter-spacing:.01em
}

h3 {
    font-size:1.65rem
}

p {
    margin-top:0
}

.eyebrow {
    text-transform:uppercase;
    letter-spacing:.2em;
    color:var(--gold-light);
    font-size:.74rem;
    font-weight:700
}

.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:50px;
    padding:.8rem 1.35rem;
    border:1px solid transparent;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.77rem;
    font-weight:700;
    transition:.2s ease
}

.btn:hover {
    transform:translateY(-2px)
}

.btn-gold {
    background:linear-gradient(135deg,#caa45d,#a87e38);
    color:#111
}

.btn-outline {
    border-color:var(--gold);
    color:var(--gold-light);
    background:rgba(0,0,0,.15)
}

.utility {
    height:40px;
    background:#080906;
    border-bottom:1px solid var(--line);
    font-size:.77rem;
    color:#c5bfb3
}

.utility .container {
    height:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:2rem
}

.utility-left,.utility-right {
    display:flex;
    align-items:center;
    gap:2rem
}

.utility span {
    display:inline-flex;
    align-items:center;
    gap:.5rem
}

.dot {
    width:14px;
    height:14px;
    border:1px solid var(--gold);
    transform:rotate(45deg);
    display:inline-block
}

.site-header {
    position:sticky;
    top:0;
    z-index:1000;
    background:rgba(8,9,7,.97);
    border-bottom:1px solid var(--line);
    backdrop-filter:blur(10px)
}

.navbar {
    min-height:118px;
    display:grid;
    grid-template-columns:360px 1fr auto;
    align-items:center;
    gap:2.5rem
}

.logo-wrap {
    display:flex;
    align-items:center;
    min-width:0
}

.logo-wrap img {
    width: 340px;
    height: 100px;
    object-fit: contain;
    object-position: left center;
    transform: scale(1.2);
    transform-origin: left center;
}

.nav {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:2.3rem;
    font-size:.83rem;
    letter-spacing:.05em;
    text-transform:uppercase
}

.nav a {
    padding:.55rem 0;
    border-bottom:2px solid transparent
}

.nav a:hover,.nav a[aria-current="page"] {
    color:var(--gold-light);
    border-color:var(--gold)
}

.nav-cta {
    border:1px solid var(--gold)!important;
    padding:.85rem 1.2rem!important;
    color:var(--gold-light)
}

.menu-toggle {
    display:none;
    background:none;
    border:0;
    color:var(--gold-light);
    font-size:1.9rem
}

.hero {
    position:relative;
    min-height:640px;
    border-bottom:1px solid var(--line);
    overflow:hidden
}

.hero-grid {
    display:grid;
    grid-template-columns:.95fr 1.3fr;
    min-height:640px
}

.hero-copy {
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:4.5rem 3rem 4.5rem 1.8rem;
    position:relative;
    z-index:2
}

.hero-title {
    margin-bottom:1.6rem
}

.hero-title .gold-line {
    color:var(--gold-light);
    display:block
}

.hero-rule {
    display:flex;
    align-items:center;
    gap:1rem;
    margin:1.2rem 0 1.4rem
}

.hero-rule:before,.hero-rule:after {
    content:"";
    height:1px;
    background:var(--gold);
    width:150px
}

.hero-rule span {
    width:10px;
    height:10px;
    border:1px solid var(--gold);
    transform:rotate(45deg)
}

.hero-copy p {
    max-width:600px;
    color:#d4cec3;
    font-size:1rem
}

.hero-actions {
    display:flex;
    gap:1rem;
    flex-wrap:wrap;
    margin-top:1rem
}

.hero-image {
    position:relative;
    overflow:hidden;
    clip-path:polygon(22% 0,100% 0,100% 100%,22% 100%,0 50%)
}

.hero-image:before {
    content:"";
    position:absolute;
    inset:0;
    border:1px solid var(--gold);
    z-index:2;
    pointer-events:none
}

.hero-image img {
    width:100%;
    height:100%;
    object-fit:cover;
    filter:saturate(.78) contrast(1.06) brightness(.82)
}

.services-strip {
    display:grid;
    grid-template-columns:repeat(6,1fr);
    border-bottom:1px solid var(--line);
    border-left:1px solid var(--line)
}

.service-mini {
    min-height:260px;
    padding:1.7rem 1.4rem;
    border-right:1px solid var(--line);
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    background:rgba(9,10,8,.68)
}

.service-mini img {
    width:60px;
    height:60px;
    margin-bottom:1rem
}

.service-mini h3 {
    font-size:1.35rem;
    margin-bottom:.7rem;
    text-transform:uppercase;
    letter-spacing:.03em
}

.service-mini p {
    color:#c7c1b6;
    font-size:.88rem;
    flex:1
}

.service-mini a {
    color:var(--gold-light);
    font-size:.76rem;
    text-transform:uppercase;
    letter-spacing:.09em
}

.why {
    border-bottom:1px solid var(--line);
    background:rgba(9,10,8,.66)
}

.why-grid {
    display:grid;
    grid-template-columns:1.4fr repeat(5,1fr);
    border-left:1px solid var(--line)
}

.why-title,.why-item {
    padding:2.2rem 1.5rem;
    border-right:1px solid var(--line)
}

.why-title h2 {
    font-size:2.4rem;
    margin:0
}

.why-title h2 span {
    color:var(--gold-light)
}

.why-item {
    display:grid;
    grid-template-columns:48px 1fr;
    gap:.8rem
}

.why-item img {
    width:44px
}

.why-item h4 {
    font-family:Inter,Arial,sans-serif;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:.78rem;
    margin:.2rem 0 .5rem
}

.why-item p {
    color:#bdb6aa;
    font-size:.79rem;
    margin:0
}

.section {
    padding:6rem 0;
    border-bottom:1px solid var(--line-soft)
}

.section-heading {
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:4rem;
    align-items:end;
    margin-bottom:3rem
}

.section-heading p:last-child {
    color:var(--muted)
}

.project-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1.2rem
}

.project-card {
    position:relative;
    min-height:430px;
    border:1px solid var(--line);
    overflow:hidden
}

.project-card img {
    width:100%;
    height:100%;
    object-fit:cover;
    filter:saturate(.74) brightness(.78);
    transition:transform .4s ease
}

.project-card:hover img {
    transform:scale(1.03)
}

.project-card .overlay {
    position:absolute;
    inset:auto 0 0;
    padding:1.5rem;
    background:linear-gradient(transparent,rgba(4,5,4,.96));
    z-index:2
}

.project-card .overlay p {
    margin:0;
    color:#c6c0b4;
    font-size:.83rem
}

.about-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4rem;
    align-items:center
}

.about-image {
    border:1px solid var(--line);
    padding:1rem;
    background:rgba(0,0,0,.28)
}

.about-copy p {
    color:#c6c0b4
}

.testimonials {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1.2rem
}

.testimonial {
    border:1px solid var(--line);
    padding:1.8rem;
    background:rgba(9,10,8,.68)
}

.stars {
    color:var(--gold-light);
    letter-spacing:.15em
}

.testimonial blockquote {
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:1.35rem;
    margin:1rem 0
}

.faq {
    max-width:920px
}

.faq-item {
    border-bottom:1px solid var(--line-soft)
}

.faq-q {
    width:100%;
    border:0;
    background:none;
    color:var(--text);
    display:flex;
    justify-content:space-between;
    gap:1rem;
    padding:1.3rem 0;
    text-align:left;
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:1.45rem
}

.faq-q span:last-child {
    color:var(--gold-light)
}

.faq-a {
    display:none;
    padding:0 0 1.3rem;
    color:#bbb4a9
}

.faq-item.open .faq-a {
    display:block
}

.page-hero {
    padding:6rem 0 5rem;
    border-bottom:1px solid var(--line);
    background:linear-gradient(90deg,rgba(8,9,7,.97),rgba(8,9,7,.88))
}

.breadcrumb {
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.1em;
    color:#978f82;
    margin-bottom:1.4rem
}

.breadcrumb a {
    color:var(--gold-light)
}

.content-grid {
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:1.2rem
}

.content-card {
    border:1px solid var(--line);
    padding:2rem;
    background:rgba(9,10,8,.72)
}

.content-card p {
    color:#beb7ab
}

.gallery-filters {
    display:flex;
    gap:.7rem;
    flex-wrap:wrap;
    margin-bottom:2rem
}

.filter-btn {
    border:1px solid var(--line);
    background:#0d0e0b;
    color:var(--text);
    padding:.7rem 1rem
}

.filter-btn.active {
    background:var(--gold);
    color:#111
}

.contact-grid {
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:3rem
}

.contact-card {
    border:1px solid var(--line);
    padding:2rem;
    background:rgba(9,10,8,.72)
}

.contact-card .phone {
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:2rem;
    color:var(--gold-light)
}

.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1rem
}

.full {
    grid-column:1/-1
}

label {
    display:block;
    font-size:.74rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:#d4cec2
}

input,select,textarea {
    width:100%;
    padding:.9rem;
    margin-top:.4rem;
    border:1px solid var(--line);
    background:#0b0c09;
    color:var(--text)
}

input:focus,select:focus,textarea:focus {
    outline:2px solid rgba(208,173,101,.3);
    border-color:var(--gold-light)
}

.form-status {
    min-height:1.4rem;
    color:#c9c2b5
}

.cta {
    padding:4rem 0;
    background:linear-gradient(135deg,#c49b51,#8d682f);
    color:#10110e
}

.cta .container {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:2rem
}

.footer {
    padding:4rem 0 1.5rem;
    background:#060705;
    border-top:1px solid var(--line)
}

.footer-grid {
    display:grid;
    grid-template-columns:2fr 1fr 1fr 1fr;
    gap:3rem
}

.footer-logo {
    width:360px;
    height:110px;
    object-fit:contain;
    object-position:left
}

.footer h3 {
    font-family:Inter,Arial,sans-serif;
    color:var(--gold-light);
    font-size:.76rem;
    text-transform:uppercase;
    letter-spacing:.1em
}

.footer a {
    display:block;
    margin:.45rem 0;
    color:#bbb4a9
}

.footer-bottom {
    display:flex;
    justify-content:space-between;
    border-top:1px solid var(--line-soft);
    margin-top:3rem;
    padding-top:1.3rem;
    font-size:.76rem;
    color:#918a7f
}

@media(max-width:1100px) {
    .navbar {
        grid-template-columns:300px 1fr auto
    }
    .logo-wrap img {
        width:285px
    }
    .nav {
        gap:1.2rem
    }
    .services-strip {
        grid-template-columns:repeat(3,1fr)
    }
    .why-grid {
        grid-template-columns:1fr repeat(2,1fr)
    }
    .why-title {
        grid-column:1/-1
    }
}

@media(max-width:900px) {
    .menu-toggle {
        display:block
    }
    .nav {
        display:none;
        position:absolute;
        top:118px;
        left:0;
        right:0;
        background:#080906;
        flex-direction:column;
        align-items:stretch;
        padding:1.5rem 3vw;
        border-bottom:1px solid var(--line)
    }
    .nav.open {
        display:flex
    }
    .navbar {
        grid-template-columns:1fr auto
    }
    .hero-grid {
        grid-template-columns:1fr
    }
    .hero-image {
        min-height:430px;
        clip-path:none
    }
    .hero-copy {
        padding-left:3vw
    }
    .section-heading,.about-grid,.contact-grid {
        grid-template-columns:1fr
    }
    .project-grid,.testimonials {
        grid-template-columns:repeat(2,1fr)
    }
    .footer-grid {
        grid-template-columns:repeat(2,1fr)
    }
}

@media(max-width:650px) {
    .utility-left {
        display:none
    }
    .utility .container {
        justify-content:flex-end
    }
    .logo-wrap img {
        width:250px;
        height:86px
    }
    .navbar {
        min-height:95px
    }
    .nav {
        top:95px
    }
    .services-strip,.why-grid,.project-grid,.testimonials,.content-grid {
        grid-template-columns:1fr
    }
    .service-mini {
        min-height:220px
    }
    .why-title {
        grid-column:auto
    }
    .section {
        padding:4.5rem 0
    }
    .form-grid {
        grid-template-columns:1fr
    }
    .full {
        grid-column:auto
    }
    .cta .container,.footer-bottom {
        align-items:flex-start;
        flex-direction:column
    }
    .footer-grid {
        grid-template-columns:1fr
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    * {
        transition:none!important
    }
}

/* Real portfolio presentation */
.portfolio-showcase {
    display:grid;
    grid-template-columns:1.05fr 1fr 1fr;
    grid-template-rows:320px 320px;
    gap:1rem;
}

.portfolio-tile {
    position:relative;
    overflow:hidden;
    border:1px solid var(--line);
    min-height:0;
}

.portfolio-tile img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .45s ease;
}

.portfolio-tile:hover img {
    transform:scale(1.025)
}

.portfolio-tile.portfolio-tall {
    grid-row:1 / span 2
}

.portfolio-tile.portfolio-wide {
    grid-column:2 / span 2
}

.portfolio-tile .overlay {
    position:absolute;
    inset:auto 0 0;
    padding:1.4rem;
    background:linear-gradient(transparent,rgba(4,5,4,.95));
}

.portfolio-tile .overlay span {
    color:var(--gold-light);
    font-size:.7rem;
    text-transform:uppercase;
    letter-spacing:.12em;
}

.portfolio-tile .overlay h3 {
    margin:.25rem 0 0
}

.masonry-gallery {
    columns:3 330px;
    column-gap:1rem;
}

.masonry-item {
    break-inside:avoid;
    margin:0 0 1rem;
    border:1px solid var(--line);
    background:rgba(9,10,8,.72);
}

.gallery-open {
    width:100%;
    padding:0;
    border:0;
    background:none;
    color:inherit;
    text-align:left;
}

.gallery-open img {
    width:100%;
    height:auto;
    display:block;
}

.gallery-caption {
    display:block;
    padding:1.1rem 1.2rem 1.25rem;
}

.gallery-caption small {
    display:block;
    color:var(--gold-light);
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:.66rem;
    margin-bottom:.3rem;
}

.gallery-caption strong {
    display:block;
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:1.5rem;
    font-weight:500;
}

.gallery-caption em {
    display:block;
    margin-top:.35rem;
    color:var(--muted);
    font-style:normal;
    font-size:.82rem;
}

.lightbox {
    position:fixed;
    inset:0;
    z-index:5000;
    background:rgba(0,0,0,.94);
    display:grid;
    place-items:center;
    padding:3rem;
}

.lightbox[hidden] {
    display:none
}

.lightbox img {
    max-width:min(1400px,92vw);
    max-height:82vh;
    object-fit:contain;
}

.lightbox p {
    color:var(--gold-light);
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:1.5rem;
    margin:.8rem 0 0;
}

.lightbox-close {
    position:absolute;
    top:1rem;
    right:1.25rem;
    border:0;
    background:none;
    color:white;
    font-size:3rem;
    line-height:1;
}

@media(max-width:900px) {
    .portfolio-showcase {
        grid-template-columns:1fr 1fr;
        grid-template-rows:320px 320px 320px;
    }
    .portfolio-tile.portfolio-tall {
        grid-row:1 / span 2
    }
    .portfolio-tile.portfolio-wide {
        grid-column:1 / span 2
    }
}

@media(max-width:650px) {
    .portfolio-showcase {
        display:grid;
        grid-template-columns:1fr;
        grid-template-rows:none;
    }
    .portfolio-tile,   .portfolio-tile.portfolio-tall,   .portfolio-tile.portfolio-wide {
        grid-column:auto;
        grid-row:auto;
        min-height:340px;
    }
    .masonry-gallery {
        columns:1
    }
    .lightbox {
        padding:1rem
    }
}

.process-detail-grid {
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:1px;
    border:1px solid var(--line);
    background:var(--line);
}

.process-detail-card {
    background:rgba(9,10,8,.94);
    padding:1.6rem 1.35rem;
}

.process-detail-card span {
    display:block;
    color:var(--gold-light);
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.15em;
    margin-bottom:1rem;
}

.process-detail-card h3 {
    font-size:1.4rem;
    margin-bottom:.75rem;
}

.process-detail-card p {
    color:var(--muted);
    font-size:.86rem;
    margin-bottom:0;
}

.content-card ul {
    padding-left:1.2rem;
    color:var(--muted);
}

.content-card li+li {
    margin-top:.8rem
}

@media(max-width:1100px) {
    .process-detail-grid {
        grid-template-columns:repeat(2,1fr)
    }
}

@media(max-width:650px) {
    .process-detail-grid {
        grid-template-columns:1fr
    }
}
/* Audit remediation: selectors deliberately exclude the estimate form. */
.hero-grid { grid-template-columns:minmax(0,1.1fr) minmax(0,1.2fr); }
.hero-copy { min-width:0; padding:2.5rem 1.5rem 2.5rem 1.8rem; }
.hero-title { font-size:clamp(2.1rem,4.4vw,5.3rem); overflow-wrap:anywhere; }
.hero-copy p { overflow-wrap:anywhere; }
.hero,.hero-grid { min-height:550px; }
.hero-actions .btn { max-width:100%; text-align:center; }
.hero-rule { margin:.5rem 0 1rem; }
.hero-title { margin-bottom:1rem; }
.navbar { grid-template-columns:250px minmax(0,1fr); gap:1.5rem; }
.logo-wrap img { width:250px; height:100px; transform:none; }
.nav { gap:clamp(.8rem,1.6vw,2rem); }
.nav-cta { text-align:center; }
.nav a { flex-shrink:0; }
.nav { font-size:.77rem; }
.utility-right { gap:1rem; flex-wrap:wrap; justify-content:flex-end; }
.utility { height:auto; min-height:40px; }
.utility .container { min-height:40px; }
.about-biography { display:block; max-width:850px; }
.service-mini .service-title { font-size:1.35rem; margin-bottom:.7rem; text-transform:uppercase; letter-spacing:.03em; }
.why-item .principle-title { font-family:Inter,Arial,sans-serif; text-transform:uppercase; letter-spacing:.08em; font-size:.78rem; margin:.2rem 0 .5rem; }
.legacy-promise { font-family:"Cormorant Garamond",Georgia,serif; font-size:1rem; font-weight:500; line-height:1.05; margin:0 0 1.33rem; }
.footer .footer-heading { font-family:Inter,Arial,sans-serif; color:var(--gold-light); font-size:.76rem; text-transform:uppercase; letter-spacing:.1em; }
.cta .btn-outline { background:#10110e; color:#f1ede4; border-color:#10110e; }
.cta .btn-outline:hover { background:#24251e; }
.cta .btn-outline:active { background:#090a08; transform:none; }
.cta .btn-outline:focus-visible { outline:3px solid #f1ede4; outline-offset:3px; box-shadow:0 0 0 6px #10110e; }
a:focus-visible,button:not(#estimate-form button):focus-visible { outline:3px solid #e0cd83; outline-offset:4px; }
#estimate { scroll-margin-top:135px; }
#gallery { scroll-margin-top:135px; }
.page-hero h1 { overflow-wrap:anywhere; }
.about-image img { height:auto; }
.lightbox { overflow:auto; }
.lightbox img { width:auto; height:auto; max-height:75vh; }
.lightbox p { text-align:center; }
@media(max-width:1100px) {
  .menu-toggle { display:block; }
  .navbar { grid-template-columns:minmax(0,1fr) auto; }
  .nav { display:none; position:absolute; top:100%; left:0; right:0; background:#080906; flex-direction:column; align-items:stretch; padding:1rem 3vw; border-bottom:1px solid var(--line); gap:.5rem; max-height:calc(100dvh - 118px); overflow-y:auto; }
  .nav.open { display:flex; }
}
@media(max-width:900px) {
  .hero-grid { grid-template-columns:minmax(0,1fr); }
  .hero-copy { padding:2.5rem 3vw; }
  .hero-title { font-size:clamp(2.1rem,7.4vw,4rem); }
}
@media(max-width:650px) {
  .navbar { gap:.6rem; }
  .logo-wrap img { width:210px; height:86px; }
  .nav { top:100%; max-height:calc(100dvh - 95px); }
  .utility-right { gap:.25rem 1rem; font-size:.7rem; }
  .hero-copy { padding:2rem 3vw; }
  .hero-actions { gap:.75rem; }
  .page-hero { padding:3rem 0; }
  .page-hero h1 { font-size:clamp(2.2rem,10vw,3.3rem); }
  .section-heading { gap:1rem; }
  .footer-logo { max-width:100%; }
  #estimate,#gallery { scroll-margin-top:110px; }
}
.hero-image img { position:absolute; inset:0; }
.nav { flex-wrap:wrap; }
.nav a { max-width:100%; overflow-wrap:anywhere; }
.home-page main :is(div,article) { min-width:0; }
.home-page main :is(h2,h3,p,a) { overflow-wrap:anywhere; }
.home-page .cta .container { flex-wrap:wrap; }
.home-page .cta .btn { max-width:100%; text-align:center; }
.footer-grid > div { min-width:0; overflow-wrap:anywhere; }
@media(min-width:651px) {
  .home-page .services-strip { grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr)); }
  .home-page .why-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr)); }
}
.home-page .testimonial { overflow-wrap:anywhere; }

/* Contact form submission feedback and spam trap. */
.form-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#estimate-form :is(input,select,textarea,button):focus-visible{outline:2px solid var(--gold,#c7a65b);outline-offset:3px}
#estimate-form button:disabled{opacity:.65;cursor:wait}

/* Attachment picker remains inside the narrow mobile form column. */
#estimate-form .attachment-help{display:block;margin-top:8px;font-size:12px;line-height:1.6;font-weight:400;letter-spacing:normal;text-transform:none;color:var(--muted,#c7c4bb)}
#estimate-form .attachment-field{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:#d4cec2}
#estimate-form input[type="file"]{min-width:0;max-width:100%;font-size:13px}
#estimate-form input[type="file"]::file-selector-button{margin-right:10px;padding:8px 10px;border:1px solid var(--gold,#c7a65b);background:#171812;color:#f5f1e7;cursor:pointer}

/* Only the standalone button activates the hidden native picker. */
#estimate-form input[type="file"][hidden], #attachment-controls[hidden]{display:none}
#attachment-controls{margin-top:.4rem;padding:.9rem;border:1px solid var(--line);background:#0b0c09;text-transform:none;letter-spacing:normal}
#attachment-controls button{padding:8px 10px;border:1px solid var(--gold,#c7a65b);background:#171812;color:#f5f1e7;cursor:pointer}
#attachment-list{list-style:none;padding:0;margin:12px 0 0;font-size:13px}
#attachment-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
#attachment-list span{min-width:0;overflow-wrap:anywhere}
#attachment-list button{flex-shrink:0}
#attachment-error{font-size:13px;color:#f0c88a;margin:8px 0 0}
#attachment-error:empty{display:none}
