/* Architectural details: restrained lines, warm accents and generous spacing. */
:root{--accent:#a67b46;--accent-light:#d9c29c}
.eyebrow{display:flex;align-items:center;gap:13px}
.eyebrow:before{content:"";width:29px;height:1px;background:var(--accent);flex:none}
.hero-copy{position:relative;background-image:linear-gradient(90deg,transparent calc(100% - 1px),#294b3e08 0);background-size:80px 100%}
.hero-copy h1{position:relative;z-index:1}
.hero-copy>p:not(.eyebrow){border-left:2px solid var(--accent-light);padding-left:20px}
.hero-photo:after{content:"";position:absolute;inset:22px;border:1px solid #fff9;pointer-events:none;z-index:1}
.photo-caption{left:42px;right:42px;bottom:42px;padding:17px 21px;background:#203d32f0;color:#fff;z-index:2;box-shadow:0 8px 26px #10271b18}
.photo-caption>span{display:grid;place-items:center;width:34px;height:34px;border:1px solid #d9c29c80;border-radius:50%;color:var(--accent-light);transition:transform .25s}
.hero-photo:hover .photo-caption>span{transform:rotate(45deg)}
.services-strip{border-top:1px solid var(--line);background:#eceee6}
.services-strip span:before{border-radius:0;background:var(--accent);width:5px;height:5px;transform:rotate(45deg)}
.home-projects .section-heading,.projects .section-heading{border-bottom:1px solid var(--line);padding-bottom:32px}
.text-link{border-bottom-color:var(--accent);display:inline-flex;align-items:center;gap:24px}
.text-link span{display:inline-block;margin:0;transition:transform .2s}
.text-link:hover span{transform:translate(3px,-3px)}
.project-grid{counter-reset:project}
.project-card{counter-increment:project}
.project-card:before{content:counter(project,decimal-leading-zero);position:absolute;top:16px;left:16px;z-index:1;display:grid;place-items:center;width:40px;height:40px;background:var(--paper);color:var(--ink);font-size:12px;letter-spacing:.08em;border:1px solid #fff9;box-shadow:0 4px 12px #203d3210;pointer-events:none}
.project-card img{border-radius:2px;transition:filter .3s}
.project-card h2,.project-card h3{padding-right:45px}
.project-card .project-arrow{width:30px;height:30px;display:grid;place-items:center;border:1px solid #c7d0c2;border-radius:50%;font-size:17px;bottom:17px;transition:background .2s,color .2s,border-color .2s}
.project-card:hover .project-arrow{background:var(--green);color:#fff;border-color:var(--green)}
.site-header nav li:not(:last-child)>a{position:relative}
.site-header nav li:not(:last-child)>a:after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:1px;background:var(--accent-light);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.site-header nav li:not(:last-child)>a:hover:after,.site-header nav li:not(:last-child).current-menu-item>a:after{transform:scaleX(1)}
.site-header nav li:last-child a{border-color:#d9c29c80}
.site-header nav li:last-child a:hover{background:var(--accent-light);color:var(--dark-green)}
.contact-panel{border-top:3px solid var(--accent);box-shadow:0 22px 65px #203d3209}
.contact-panel h1:after{content:"";display:block;width:55px;height:1px;background:var(--accent-light);margin-top:23px}
.info-photo{border-radius:2px;box-shadow:14px 14px 0 #e8e9df}
.project-intro{border-bottom:1px solid var(--line);padding-bottom:22px}
.gallery-image{border-radius:2px}
.footer-invite{position:relative;isolation:isolate;padding-top:80px;padding-bottom:80px}
.footer-invite:before{content:"";position:absolute;z-index:-1;pointer-events:none;inset:0 4% 0 auto;width:48%;opacity:.25;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='280' viewBox='0 0 600 280' fill='none' stroke='%23b5c5ac' stroke-width='1'%3E%3Cpath d='M40 280V150L240 25L440 150V280M75 280V168L240 65L405 168V280M0 150H600M240 0V280M310 280V190H530V280M342 280V218H498V280M170 280V165H260V280'/%3E%3C/svg%3E") center/contain no-repeat}
.footer-contact{background:var(--accent-light);border-color:var(--accent-light);color:var(--dark-green);box-shadow:0 5px 20px #0d231b18}
.footer-contact:hover{background:#e9d7b9;border-color:#e9d7b9}
.footer-contact span{display:inline-block;transition:transform .2s}
.footer-contact:hover span{transform:translate(3px,-3px)}
@media(min-width:1001px){.home-projects .project-grid{align-items:start;padding-bottom:30px}.home-projects .project-card:nth-child(2){margin-top:34px}.home-projects .project-card:nth-child(2) img{aspect-ratio:1/1}.home-projects .project-card:nth-child(3){margin-top:68px}}
@media(max-width:760px){.hero-copy{background-size:64px 100%}.hero-photo:after{inset:16px}.photo-caption{left:30px;right:30px;bottom:30px}.home-projects .section-heading,.projects .section-heading{padding-bottom:24px}.footer-invite{padding-top:56px;padding-bottom:56px}.footer-invite:before{width:75%;right:0;opacity:.14}.info-photo{box-shadow:9px 9px 0 #e8e9df}}
@media(max-width:600px){.hero-copy>p:not(.eyebrow){padding-left:16px}.photo-caption{padding:12px 15px}.photo-caption>span{width:29px;height:29px;font-size:20px}.project-card:before{top:12px;left:12px;width:34px;height:34px;font-size:11px}.project-card .project-arrow{bottom:13px}.site-header nav li:not(:last-child)>a:after{display:none}.eyebrow{gap:10px}.eyebrow:before{width:22px}.footer-invite:before{width:100%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Keep both direct contact options visible outside the mobile menu. */
.site-header{display:grid;grid-template-columns:auto 1fr auto;gap:28px}
.site-header nav{justify-self:end}
.site-header nav ul{gap:28px}
.header-contact-links{display:flex;gap:10px;align-items:center}
.header-phone{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:10px 15px;border:1px solid var(--accent-light);border-radius:4px;background:var(--accent-light);color:var(--dark-green);font-size:14px;font-weight:600;line-height:1.5;text-decoration:none;white-space:nowrap;font-variant-numeric:tabular-nums}
.header-phone:hover{background:#e9d7b9;border-color:#e9d7b9}
.header-phone svg{flex:none}
@media(min-width:601px) and (max-width:1000px){.site-header{gap:22px}.site-header .brand img{width:175px}.site-header nav ul{gap:20px}.site-header nav a{font-size:14px}.header-phone{padding:10px 12px}}
@media(min-width:601px) and (max-width:1100px){.site-header{grid-template-columns:1fr auto;row-gap:20px}.site-header nav{grid-column:1/-1;grid-row:2;width:100%;justify-self:stretch}.site-header nav ul{justify-content:space-between}.header-contact-links{grid-column:2;grid-row:1}}
@media(max-width:600px){.site-header{grid-template-columns:1fr auto;gap:0 14px;padding-top:18px;padding-bottom:16px}.menu-toggle{justify-self:end}.site-header nav{grid-column:1/-1;grid-row:3;justify-self:stretch}.site-header nav ul{gap:4px}.header-contact-links{grid-column:1/-1;grid-row:2;margin-top:15px;gap:8px;flex-wrap:wrap}.header-phone{flex:1 1 auto;padding:9px 10px;font-size:13px;gap:7px}.header-phone svg{width:15px;height:15px}.site-header nav.open{padding-top:16px}}
@media(max-width:380px){.header-contact-links{flex-direction:column;align-items:stretch}.header-phone{width:100%}}

/* Vector arrows stay crisp and never turn into emoji on mobile devices. */
.wvh-arrow{display:block;width:22px;height:22px;flex:none}
.photo-caption>span{flex:none;margin-left:12px}
.project-arrow .wvh-arrow{width:18px;height:18px}

/* Give the services ribbon a clearer typographic presence. */
.services-strip{font-weight:700;font-size:14px;color:var(--dark-green)}
@media(max-width:760px){.services-strip{font-size:12px;letter-spacing:.07em}}

/* Direct contact remains easy to find at the end of every page. */
.footer-direct-contact{display:flex;flex-wrap:wrap;gap:4px 26px;margin-top:22px}
.footer-direct-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:16px;font-weight:600;line-height:1.5;color:#f7f6f1;text-decoration:none}
.footer-direct-link svg{flex:none;color:var(--accent-light)}
.footer-direct-link:hover{color:var(--accent-light);text-decoration:underline;text-underline-offset:5px}
@media(max-width:600px){.footer-direct-contact{flex-direction:column;align-items:flex-start;margin-top:18px;gap:2px}.footer-direct-link{font-size:16px}}
