/* Modul visual system. Viewer geometry and controls come from the tour styles. */
.modul-public,.admin-body,.login-body {
    --modul-paper: #f6f4ee;
    --modul-ink: #171715;
    --modul-line: #d9d6ce;
    --modul-radius: 14px;
    background: var(--modul-paper);
    color: var(--modul-ink);
}
.modul-public .site-header {
    background: #f6f4eef7;
    border-bottom: 1px solid var(--modul-line);
}
.modul-public .modul-logo,.login-content .modul-logo { display: inline-flex; flex: 0 0 auto; align-items: center; }
.modul-logo img,.admin-sidebar .brand-mark img { width: 48px; height: 48px; object-fit: contain; mix-blend-mode: multiply; }
.modul-public .header-contact,.modul-public .button,.login-body .button { border-radius: 999px; }
.modul-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    min-height: 44px;
    width: fit-content;
    max-width: 100%;
    padding: .55rem 1.1rem;
    border: 1px solid var(--modul-ink);
    border-radius: 999px;
    background: var(--modul-ink);
    color: #fff;
    font-size: .88rem;
    line-height: 1.3;
    font-weight: 700;
}
.modul-pill:hover { opacity: .86; }
.modul-outline { background: transparent; color: var(--modul-ink); }
.modul-hero {
    position: relative;
    display: grid;
    align-items: center;
    isolation: isolate;
    min-height: clamp(530px, 52vw, 750px);
    background: #eeeae2;
    overflow: hidden;
}
.modul-hero picture { position: absolute; inset: 0 0 0 22%; z-index: -2; }
.modul-hero img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.modul-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,#f6f4ee 3%,#f6f4ee 24%,#f6f4eef7 32%,#f6f4ee90 47%,transparent 67%);
    z-index: -1;
}
.modul-hero-content {
    width: min(45%,720px);
    min-width: 0;
    padding: clamp(28px,5vw,84px);
    overflow-wrap: anywhere;
}
.modul-hero h1 { margin: 16px 0 18px; font-size: clamp(2.65rem,5.35vw,6.1rem); line-height: .99; letter-spacing: -.063em; }
.modul-hero-content > p:not(.eyebrow) { max-width: 32rem; margin: 0 0 24px; color: #34332f; }
.modul-public .section { padding-block: clamp(40px,5.5vw,90px); }
.modul-section-header {
    display: grid;
    grid-template-columns: minmax(0,1.15fr) minmax(0,1fr) auto;
    align-items: end;
    gap: clamp(14px,3vw,48px);
    margin-bottom: 26px;
}
.modul-section-header h2,.modul-work h2,.modul-studio h2 {
    margin: 9px 0 0;
    font-size: clamp(2rem,3.5vw,4.2rem);
    letter-spacing: -.055em;
    line-height: 1.06;
}
.modul-section-header p:not(.eyebrow) { margin: 0; max-width: 47ch; }
.modul-process .modul-section-header { grid-template-columns: minmax(0,1fr) auto; }
.modul-public .services-grid { gap: clamp(12px,2vw,30px); }
.modul-public .service-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--modul-line);
    border-radius: var(--modul-radius);
    padding: 0 18px 20px;
    overflow: hidden;
    background: #fcfaf6;
    min-width: 0;
}
.modul-public .service-image { order: -1; margin: 0 -18px 16px; border-radius: 0; }
.modul-public .service-image img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.modul-public .service-card h3 { margin: 4px 0 6px; }
.modul-work { background: #1c1c1a; color: #fff; }
.modul-work-inner { display: grid; grid-template-columns: minmax(160px, .9fr) minmax(0, 3fr); gap: clamp(16px,3vw,50px); align-items: center; }
.modul-work h2 small { font-size: .32em; white-space: nowrap; letter-spacing: 0; }
.modul-work-inner > div > p { color: #e2ded6; }
.modul-work .modul-pill { background: #f6f4ee; color: #171715; border-color: #f6f4ee; }
.modul-public .project-card { position: relative; display: block; min-width: 0; overflow: hidden; border-radius: var(--modul-radius); background: #eeebe5; border: 0; }
.modul-public .project-photo,.modul-public .project-photo img { border-radius: 0; }
.modul-public .project-caption { padding: 14px 16px; align-items: center; }
.modul-public .project-caption h3 { overflow-wrap: anywhere; }
.modul-public .image-tag { border-radius: 999px; }
.modul-work .projects-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 0; }
.modul-work .project-card { background: #34342f; color: #fff; }
.modul-work .project-photo,.modul-work .project-photo img { aspect-ratio: 4 / 4.6; height: auto; width: 100%; object-fit: cover; }
.modul-work .project-caption {
    position: absolute;
    inset: auto 0 0;
    padding: 30px 12px 12px;
    background: linear-gradient(transparent,#171715f5 72%);
    color: #fff;
    border: 0;
}
.modul-work .project-caption p { color: #f0ede4; }
.modul-work .project-caption .arrow { color: #fff; border-color: #fff8; }
.modul-studio { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(24px,5vw,70px); align-items: center; }
.modul-studio img,.modul-page-hero img,.modul-public .about-wide,.modul-public .gallery-tile,.modul-contact-photo,.modul-public .journal-hero {
    width: 100%;
    height: auto;
    border-radius: var(--modul-radius);
}
.modul-public .process-grid article,.modul-public .values-grid article {
    border: 1px solid var(--modul-line);
    background: #fcfaf6;
    border-radius: 10px;
    padding: clamp(14px,2.2vw,30px);
}
.modul-public .journal-section { border-top: 1px solid var(--modul-line); }
.modul-public .journal-card { overflow: hidden; border: 1px solid var(--modul-line); border-radius: var(--modul-radius); background: #fcfaf6; }
.modul-public .journal-card-copy { padding: 16px 18px 20px; }
.modul-public .cta-section {
    background: linear-gradient(90deg,#171715f5 20%,#171715a8),url('/assets/images/living-1600.webp') center / cover;
    color: #fff;
}
.modul-public .cta-section .modul-wa { margin: 8px 0 0 4px; background: transparent; border-color: #fff; }
.modul-public .site-footer { background: #191917; color: #fff; border-color: #4a4843; }
.modul-public .site-footer a,.modul-public .site-footer p,.modul-public .footer-bottom { color: #f0ede7; }
.modul-public .site-footer .brand-mark { background: #fff; border-radius: 5px; }
.modul-public .chip { border-radius: 999px; }
.modul-index .projects-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.modul-page-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap: clamp(20px,4vw,70px); align-items: center; margin: 14px 0 32px; }
.modul-page-hero h1 { margin: 0; }
.modul-page-hero p { margin: 16px 0 20px; }
.modul-project-hero { position: relative; margin-top: 16px; border-radius: var(--modul-radius); overflow: hidden; background: #292823; }
.modul-project-hero img { display: block; width: 100%; height: clamp(300px,48vw,650px); object-fit: cover; }
.modul-project-hero > div { position: absolute; inset: auto 0 0; padding: 12% clamp(18px,4vw,54px) clamp(18px,4vw,54px); background: linear-gradient(transparent,#141411ed); color: #fff; }
.modul-project-hero h1 { color: #fff; font-size: clamp(2rem,6vw,6rem); margin: 8px 0 0; line-height: 1; overflow-wrap: anywhere; }
.modul-project-hero .eyebrow { color: #fff; }
.modul-detail .project-meta { margin: 14px 0 0; }
.modul-detail .project-meta .modul-pill { color: #fff; }
.modul-overview { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr); gap: clamp(14px,4vw,56px); padding: 30px 0; border-bottom: 1px solid var(--modul-line); align-items: start; }
.modul-overview h2,.modul-overview p { margin: 0; }
.modul-public .panorama-header { scroll-margin-top: 95px; }
.modul-contact-photo { display: block; margin: 12px 0 20px; aspect-ratio: 16 / 9; object-fit: cover; }
.modul-public .contact-form { min-width: 0; padding: clamp(16px,3vw,36px); border: 1px solid var(--modul-line); border-radius: var(--modul-radius); background: #fcfaf6; align-self: start; }
.modul-contact-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.modul-contact-fields input,.modul-contact-fields select { width: 100%; min-width: 0; }
.modul-public .modul-journal-feature { margin: 24px 0; }
.modul-journal-feature .journal-card > a { display: grid; grid-template-columns: 1.3fr 1fr; align-items: center; }
.modul-journal-feature .journal-card img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.modul-journal-related { margin-top: 30px; }

.admin-body .admin-sidebar,.admin-body .admin-header { border-color: var(--modul-line); }
.admin-body .admin-sidebar .brand-mark { background: #fff; border-radius: 6px; }
.admin-body .admin-sidebar nav a,.admin-body .admin-mobile-nav a { border-radius: 7px; }
.admin-body .admin-panel,.admin-body .stat-card,.admin-body .admin-image-panel { border: 1px solid var(--modul-line); border-radius: 11px; background-color: #fff; }
.admin-body .admin-image-panel { overflow: hidden; }
.admin-body .admin-search { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-body .admin-search input { flex: 1 1 200px; min-width: 0; }
.admin-body .admin-search select { flex: 0 1 160px; width: auto; max-width: 100%; }
.admin-body .button,.admin-body .small-button,.admin-body .status-pill { border-radius: 7px; }
.admin-body .status-pill.published { background: #222; color: #fff; }
.admin-body .table-project img { border-radius: 5px; }
.modul-inquiries { list-style: none; padding: 0; margin: 12px 0 20px; }
.modul-inquiries li { border-bottom: 1px solid var(--modul-line); padding: 8px 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.login-body .login-panel { background: #fcfaf6; }
.login-body .login-content .modul-logo { margin-bottom: 14px; }
@media (max-width: 1024px) {
    .modul-hero-content { width: 52%; }
    .modul-work-inner { grid-template-columns: 1fr; }
    .modul-section-header { grid-template-columns: minmax(0,1fr) auto; align-items: center; }
    .modul-section-header > p { grid-row: 2; grid-column: 1 / -1; }
}
@media (max-width: 760px) {
    .modul-hero { display: flex; flex-direction: column; min-height: 0; }
    .modul-hero::before { display: none; }
    .modul-hero-content { order: -1; width: 100%; padding: 32px 20px 25px; }
    .modul-hero picture { position: static; display: block; width: 100%; }
    .modul-hero img { height: auto; aspect-ratio: 4 / 3; }
    .modul-hero h1 { font-size: clamp(2.45rem,10vw,4.2rem); }
    .modul-section-header,.modul-process .modul-section-header,.modul-studio,.modul-page-hero,.modul-overview { grid-template-columns: minmax(0,1fr); }
    .modul-section-header > p { grid-row: auto; }
    .modul-work .projects-grid,.modul-index .projects-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .modul-work .project-caption { position: static; padding: 12px; background: #292926; }
    .modul-work .project-photo,.modul-work .project-photo img { aspect-ratio: 4 / 3; }
    .modul-project-hero img { height: auto; aspect-ratio: 4 / 3; }
    .modul-project-hero > div { position: static; padding: 15px; background: #242421; }
    .modul-journal-feature .journal-card > a,.modul-contact-fields { grid-template-columns: minmax(0,1fr); }
    .modul-public .cta-section .modul-wa { margin-left: 0; }
}
@media (max-width: 500px) {
    .modul-public .modul-logo img { width: 42px; height: 42px; }
    .modul-work .projects-grid,.modul-index .projects-grid { grid-template-columns: minmax(0,1fr); }
}
