/* Semantic component layout. Visual branding is supplied by the active theme. */
.skip-link { position:absolute; inset-inline-start:20px; top:-100px; z-index:100; background:white; padding:12px; }
.skip-link:focus { top:12px; }
.studio-header { display:flex; align-items:center; position:relative; z-index:20; }
.wordmark { display:flex; gap:12px; align-items:center; text-decoration:none; margin-inline-end:auto; white-space:nowrap; line-height:1.2; }
.studio-menu { list-style:none; padding:0; margin:0; display:flex; align-items:center; }
.studio-menu a { text-decoration:none; display:inline-block; }
.studio-menu .current-menu-item a { border-bottom:1px solid; }
.languages { display:flex; }
.languages a { padding:10px 0; text-decoration:none; }
.languages a[aria-current] { border-bottom:1px solid; }
.header-cta { display:flex; align-items:center; text-decoration:none; white-space:nowrap; }
.menu-toggle { display:none; }
.footer-top { display:flex; justify-content:space-between; gap:50px; }
.footer-brand { text-decoration:none; line-height:1; }
.footer-brand span { margin-inline-start:20px; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--done-rule, #cfccc2); padding-top:25px; color:var(--done-muted, #62645e); }
.footer-bottom nav { display:flex; }
.footer-bottom a { text-decoration:none; }
.demo-notice { color:var(--done-muted, #62645e); margin-top:22px; }
.breadcrumbs { display:flex; gap:14px; flex-wrap:wrap; font-size:calc(1.44rem * var(--done-type-scale, .625)); color:var(--done-muted, #62645e); margin-bottom:35px; }
.breadcrumbs a { text-decoration:none; }
.project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:55px 35px; }
.featured-grid .project-card:first-child { grid-column:1/-1; }
.project-image { display:block; position:relative; overflow:hidden; background:#ddd9d0; aspect-ratio:4/3; }
.featured-grid .project-card:first-child .project-image { aspect-ratio:2.1/1; }
.project-image img { width:100%; height:100%; object-fit:cover; }
.project-caption { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-top:20px; }
.project-caption h3 { margin:0; font-size:calc(3.4rem * var(--done-type-scale, .625)); letter-spacing:-.04em; }
.project-caption a { text-decoration:none; }
.project-caption>span { font-size:calc(1.44rem * var(--done-type-scale, .625)); color:var(--done-muted, #62645e); }
.project-disclosure { font-size:calc(1.3rem * var(--done-type-scale, .625)); color:var(--done-muted, #62645e); margin-top:5px; }
.project-facts { display:grid; grid-template-columns:repeat(4,1fr); gap:25px; border-block:1px solid var(--done-rule, #cfccc2); padding-block:22px; max-width:1360px!important; }
.project-facts dt { font-size:calc(1.4rem * var(--done-type-scale, .625)); color:var(--done-muted, #62645e); }
.project-facts dd { margin:5px 0 0; font-size:calc(1.8rem * var(--done-type-scale, .625)); }
.demo-label { color:var(--done-muted, #62645e); }
.portfolio-filters { display:flex; align-items:end; flex-wrap:wrap; gap:20px; margin-bottom:50px; padding-block:25px; border-block:1px solid var(--done-rule, #cfccc2); }
.portfolio-filters label { flex:1; min-width:140px; font-size:calc(1.44rem * var(--done-type-scale, .625)); }
.portfolio-filters a { font-size:calc(1.5rem * var(--done-type-scale, .625)); padding-block:12px; }
.portfolio-filters select { min-height:46px; }
.button { font:inherit; font-size:calc(1.7rem * var(--done-type-scale, .625)); background:#242725; color:white; border:1px solid #242725; min-height:48px; padding:14px 24px; cursor:pointer; }
.button:disabled { opacity:.65; cursor:wait; }
.button span { margin-inline-start:20px; }
.pagination { margin-top:35px; display:flex; gap:20px; }
.inquiry-form { max-width:850px; }
.inquiry-form>p:first-child { font-size:calc(1.5rem * var(--done-type-scale, .625)); color:var(--done-muted, #62645e); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.inquiry-form label { display:block; font-size:calc(1.68rem * var(--done-type-scale, .625)); margin-block:0 22px; }
.inquiry-form input:not([type=checkbox]),.inquiry-form textarea,.inquiry-form select,.portfolio-filters select { display:block; background:transparent; border:0; border-bottom:1px solid #a5a39d; border-radius:0; padding:12px 0; width:100%; font:inherit; color:#242725; }
.inquiry-form textarea { resize:vertical; min-height:130px; }
.inquiry-form .consent { display:flex; align-items:flex-start; gap:13px; font-size:calc(1.56rem * var(--done-type-scale, .625)); line-height:1.7; margin-top:25px; }
.consent input { width:20px; height:20px; flex-shrink:0; margin-top:3px; accent-color:#242725; }
.form-trap { position:absolute!important; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.form-status { font-size:calc(1.8rem * var(--done-type-scale, .625)); min-height:1.5em; }
.form-status:empty { display:none; }
.inquiry-form .button { min-width:230px; }
@media(max-width:800px) {
 .menu-toggle { display:flex; align-items:center; gap:10px; font:inherit; border:0; background:transparent; padding:12px 0; cursor:pointer; }
 .studio-header #studio-navigation { display:none; position:absolute; top:100%; inset-inline:0; border-bottom:1px solid #aaa; }
 .studio-header #studio-navigation.is-open { display:block; }
 .studio-menu { flex-direction:column; gap:0; }
 .studio-menu a { display:block; }
 .footer-top { flex-direction:column; padding-bottom:40px; gap:25px; }
 .footer-bottom { flex-direction:column; }
 .footer-bottom nav { flex-wrap:wrap; }
 .project-facts { grid-template-columns:1fr 1fr; }
 .project-caption { flex-direction:column; gap:5px; }
 .project-caption h3 { font-size:calc(2.8rem * var(--done-type-scale, .625)); }
}
@media(max-width:600px) {
 .project-grid { grid-template-columns:1fr; gap:35px; }
 .featured-grid .project-card:first-child .project-image { aspect-ratio:4/3; }
 .form-grid { grid-template-columns:1fr; gap:0; }
 .portfolio-filters { gap:15px; }
 .portfolio-filters label { min-width:calc(50% - 15px); }
 .project-facts { gap:20px; }
 .inquiry-form .button { width:100%; }
}
