:root {
    color-scheme: light;
    --paper: #f8f7f3;
    --ink: #182922;
    --muted: #727c74;
    --forest: #17382f;
    --teal: #6ba89a;
    --gold: #c99a48;
    --forest-rich: #173f35;
    --line: #e8e8df;
    --white: #fff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 82px; }
body { min-width: 320px; margin: 0; font-family: 'Segoe UI', Arial, sans-serif; color: var(--ink); background: var(--paper); }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.public-site { overflow-x: clip; }
.public-header { position: sticky; top: 0; z-index: 100; display: flex; min-height: 78px; align-items: center; justify-content: space-between; gap: 20px; padding: 0 clamp(20px, 3.5vw, 88px); background: rgba(250,249,245,.97); box-shadow: 0 4px 16px rgba(28,44,35,.07); }
.public-brand { display: inline-flex; align-items: center; gap: 11px; color: #203229; font-family: Georgia, 'Times New Roman', serif; font-size: 16px; font-weight: 700; }
.public-brand > span:last-child { display: grid; gap: 3px; }
.public-brand small { color: #879188; font-family: 'Segoe UI', Arial, sans-serif; font-size: 8px; font-weight: 600; letter-spacing: .13em; }
.public-brand-symbol { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #88a799; border-radius: 50%; color: #336754; font-size: 17px; }
.public-brand-logo { display: block; width: 46px; height: 46px; flex: 0 0 auto; object-fit: contain; }
.public-nav { display: flex; align-items: center; gap: clamp(17px, 3vw, 25px); }
.public-nav > a { color: #5d6a60; font-size: 16px; transition: color .15s; }
.public-nav > a[aria-current="page"] { color: #1b664f; font-weight: 700; }
.public-nav > a:hover { color: #1b664f; }
.public-nav > .header-cta { color: #fff; }
.public-nav > .header-cta:hover { color: #fff; background: #325a48; }
.public-nav > .public-login-link { padding: 9px 12px; border: 1px solid #9eafa2; border-radius: 3px; color: #315d46; font-size: 14px; font-weight: 650; white-space: nowrap; }
.public-nav > .public-login-link:hover { border-color: #315d46; color: #244b37; background: #eff4ed; }
.public-nav .nav-other-site { padding-left: 18px; border-left: 1px solid #e4e6df; color: #778078; font-size: 10px; }
.button { display: inline-flex; min-height: 43px; align-items: center; justify-content: center; gap: 20px; padding: 0 17px; border: 1px solid transparent; border-radius: 3px; font-size: 10px; font-weight: 650; letter-spacing: .015em; transition: transform .18s, background .18s; }
.button:hover { transform: translateY(-2px); }
.button-dark { color: #fff; background: #253a31; }
.button-dark:hover { background: #325a48; }
.button-light { color: #15392f; background: #e1eee5; }
.button-light:hover { background: #d0e4d5; }
.button > span { font-size: 14px; }
.header-cta { min-height: 38px; padding: 0 13px; white-space: nowrap; }
.public-menu-toggle { display: none; width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 3px; color: var(--ink); background: transparent; }

.kavi-hero { display: grid; min-height: 540px; grid-template-columns: minmax(360px, .82fr) minmax(420px, 1.18fr); padding: 0 clamp(20px, 3.5vw, 88px); background: #f3f2ec; }
.kavi-hero-copy { align-self: center; padding: 65px 28px 68px 0; }
.section-kicker { display: inline-flex; align-items: center; gap: 9px; color: #738074; font-size: 9px; font-weight: 700; letter-spacing: .15em; }
.section-kicker i { width: 7px; height: 7px; border-radius: 50%; background: #76a995; }
.kavi-hero h1, .tim-hero h1 { margin: 24px 0 15px; color: #21372c; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(40px, 5.2vw, 72px); font-weight: 400; letter-spacing: -.045em; line-height: 1.08; }
.kavi-hero h1 span { color: #79917e; font-style: italic; }
.kavi-hero-copy > p { max-width: 410px; margin: 19px 0 24px; color: #788078; font-size: 13px; line-height: 1.8; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 21px; }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: #46634f; font-size: 10px; font-weight: 650; }
.text-link span { font-size: 14px; }
.hero-note { display: flex; align-items: center; gap: 12px; margin-top: 54px; color: #7f887f; font-size: 9px; line-height: 1.6; }
.note-rule { width: 27px; height: 1px; background: #9eb09f; }
.hero-visual { position: relative; min-height: 540px; overflow: hidden; background: linear-gradient(155deg, #dfe9dd 0%, #c4d6c4 46%, #a7c3b2 100%); }
.visual-sun { position: absolute; top: 11%; right: 16%; width: clamp(100px, 14vw, 180px); aspect-ratio: 1; border-radius: 50%; background: #e8d9b1; opacity: .82; }
.visual-orbit { position: absolute; top: 10%; right: 8%; width: 81%; height: 79%; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; transform: rotate(-26deg); }
.orbit-two { top: 21%; right: 15%; width: 69%; height: 60%; transform: rotate(21deg); }
.building { position: absolute; z-index: 2; bottom: 13%; display: flex; flex-wrap: wrap; align-content: start; justify-content: space-evenly; gap: 10px 8px; padding: 18px 12px; background: #b4c6b3; box-shadow: 18px 20px 45px rgba(55,83,68,.13); }
.building i { display: block; width: 13px; height: 18px; background: rgba(232,222,193,.85); }
.building-back { right: 12%; bottom: 27%; width: 29%; height: 45%; background: #91ad9d; transform: skewY(-5deg); }
.building-main { right: 34%; width: 37%; height: 59%; background: #f1eee2; }
.building-main i { width: 16px; height: 20px; background: #829f91; }
.building-low { right: 10%; bottom: 12%; width: 28%; height: 23%; background: #738f7b; }
.building-low i { width: 14px; height: 13px; }
.visual-ground { position: absolute; z-index: 3; right: 0; bottom: 0; left: 0; height: 13%; background: linear-gradient(90deg, #748d74, #527961); clip-path: polygon(0 45%, 20% 10%, 42% 40%, 67% 0, 100% 25%, 100% 100%, 0 100%); }
.visual-label { position: absolute; z-index: 4; right: 19px; bottom: 20px; left: 20px; display: flex; justify-content: space-between; color: rgba(255,255,255,.86); font-size: 8px; letter-spacing: .05em; }
.visual-stamp { position: absolute; z-index: 4; top: 24px; left: 24px; color: rgba(255,255,255,.86); font-family: Georgia, serif; font-size: 15px; letter-spacing: .12em; }
.visual-stamp span { font-family: 'Segoe UI', Arial, sans-serif; font-size: 7px; }
.hero-slides, .hero-slide, .hero-slide-art { position: absolute; inset: 0; }
.hero-slide { visibility: hidden; opacity: 0; transition: opacity .65s ease, visibility .65s; }
.hero-slide.is-active { visibility: visible; opacity: 1; }
.hero-slide-art { overflow: hidden; background: linear-gradient(155deg, #dfe9dd 0%, #c4d6c4 46%, #a7c3b2 100%); }
.scene-olive .hero-slide-art { background: linear-gradient(155deg, #e4e8d7 0%, #b8c8a8 48%, #849e7a 100%); }
.scene-blue .hero-slide-art { background: linear-gradient(155deg, #dbe5e9 0%, #a8c0c4 48%, #759598 100%); }
.hero-slide-image { width: 100%; height: 100%; object-fit: cover; }
.visual-label { left: auto; max-width: calc(100% - 160px); align-items: end; }
.visual-slide-copy { display: grid; gap: 4px; max-width: 70%; text-align: right; }
.visual-slide-copy strong { font-family: Georgia, 'Times New Roman', serif; font-size: 15px; font-weight: 400; letter-spacing: 0; }
.visual-slide-copy > span { font-size: 8px; }
.carousel-controls { position: absolute; z-index: 5; bottom: 18px; left: 20px; display: flex; align-items: center; gap: 10px; }
.carousel-arrow { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; color: #fff; background: rgba(31,55,45,.28); font-size: 15px; }
.carousel-arrow:hover, .carousel-arrow:focus-visible { background: rgba(31,55,45,.7); }
.carousel-dots { display: flex; align-items: center; gap: 6px; }
.carousel-dot { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 10px; background: rgba(255,255,255,.6); transition: width .2s, background .2s; }
.carousel-dot.is-active { width: 20px; background: #fff; }
.carousel-dot:focus-visible, .carousel-arrow:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.hero-visual:focus-visible { outline: 3px solid #39735c; outline-offset: 3px; }
.trust-strip { display: flex; min-height: 72px; align-items: center; justify-content: center; gap: clamp(16px, 3vw, 38px); padding: 14px 24px; border-bottom: 3px solid var(--gold); color: #f4f1e7; background: linear-gradient(105deg, #173f35, #245344 55%, #17382f); font-size: 9px; }
.trust-strip i { width: 5px; height: 5px; flex: 0 0 auto; border-radius: 50%; background: #d8b46b; }
.trust-strip span { color: inherit; font-weight: 600; }
.public-page-hero { padding: clamp(65px, 9vw, 112px) clamp(20px, 3.5vw, 88px); background: linear-gradient(130deg, #f4f2e9, #e8efe5 68%, #dce8dc); }
.public-page-hero h1 { max-width: 900px; margin: 22px 0 18px; color: #21372c; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(40px, 5.2vw, 68px); font-weight: 400; letter-spacing: -.045em; line-height: 1.08; }
.public-page-hero h1 span { color: #718d78; font-style: italic; }
.public-page-hero > p { max-width: 690px; margin: 0 0 26px; color: #65736a; font-size: 18px; line-height: 1.75; }
.home-intro { background: #fff; }
.home-intro .section-heading { align-items: center; }
.home-intro .section-heading h2 { max-width: 650px; }
.home-link-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.home-link-grid > a { position: relative; display: grid; min-height: 160px; align-content: space-between; gap: 18px; padding: 22px; border: 1px solid #e0e8de; border-top: 3px solid #82a489; background: linear-gradient(145deg, #fbfcf9, #f1f6ef); transition: transform .18s, box-shadow .18s; }
.home-link-grid > a:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(30,69,49,.1); }
.home-link-grid > a > span { color: #63846b; font-size: 14px; font-weight: 700; letter-spacing: .08em; }
.home-link-grid > a > strong { max-width: 290px; padding-right: 20px; color: #2c4233; font-family: Georgia, serif; font-size: 23px; font-weight: 400; line-height: 1.3; }
.home-link-grid > a > i { position: absolute; right: 20px; bottom: 20px; color: #597c61; font-size: 20px; font-style: normal; }
.home-story-section { display: grid; min-height: 480px; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; background: #fff; }
.home-story-section:nth-of-type(even) { background: #f3f3ec; }
.home-story-visual { position: relative; min-height: 420px; overflow: hidden; background: #dfe8dc; }
.home-story-visual > img { display: block; width: 100%; height: 100%; min-height: 420px; object-fit: cover; }
.home-story-copy { display: flex; max-width: 700px; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(38px, 7vw, 96px); }
.home-story-copy h2 { margin: 17px 0 15px; color: #24372c; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(34px, 4vw, 52px); font-weight: 400; letter-spacing: -.035em; line-height: 1.16; }
.home-story-copy > p { max-width: 560px; margin: 0 0 23px; color: #65736a; font-size: 17px; line-height: 1.85; }
.home-story-copy .button { margin-top: 4px; }
@media (min-width: 701px) {
    .home-story-section.image-left .home-story-visual { order: 0; }
    .home-story-section.image-left .home-story-copy { order: 1; }
    .home-story-section:not(.image-left) .home-story-visual { order: 1; }
    .home-story-section:not(.image-left) .home-story-copy { order: 0; }
}
.home-story-art { position: absolute; inset: 0; overflow: hidden; background: linear-gradient(145deg, #e9eadb, #b7cbb8 55%, #7e9d86); }
.home-story-section:nth-of-type(even) .home-story-art { background: linear-gradient(145deg, #e6e9dc, #c1d0bb 55%, #8da58b); }
.home-story-sun { position: absolute; top: 13%; right: 15%; width: clamp(90px, 13vw, 165px); aspect-ratio: 1; border-radius: 50%; background: rgba(237, 218, 169, .8); }
.home-story-orbit { position: absolute; top: 9%; left: 14%; width: 76%; height: 76%; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; transform: rotate(-22deg); }
.home-story-building { position: absolute; z-index: 2; bottom: 13%; display: block; background: repeating-linear-gradient(0deg, transparent 0 34px, rgba(86,122,101,.8) 34px 38px), repeating-linear-gradient(90deg, transparent 0 32px, rgba(86,122,101,.65) 32px 36px), #e9eee3; box-shadow: 15px 17px 36px rgba(44,69,51,.16); }
.home-story-building.building-back { right: 13%; bottom: 27%; width: 29%; height: 44%; background-color: #9fb69f; }
.home-story-building.building-front { right: 34%; width: 38%; height: 59%; }
.home-story-ground { position: absolute; z-index: 3; right: 0; bottom: 0; left: 0; height: 17%; background: linear-gradient(90deg, #78917a, #456d56); clip-path: polygon(0 50%, 25% 12%, 45% 48%, 68% 0, 100% 35%, 100% 100%, 0 100%); }
.home-story-art-label { position: absolute; z-index: 4; bottom: 24px; left: 24px; color: rgba(255,255,255,.9); font-size: 9px; font-weight: 700; letter-spacing: .13em; }
.home-contact-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 50px clamp(20px, 3.5vw, 88px); color: #f4f1e7; background: linear-gradient(110deg, #173f35, #285b45); }
.home-contact-cta h2 { max-width: 680px; margin: 12px 0 0; color: #fff; font-family: Georgia, serif; font-size: clamp(28px, 3.5vw, 42px); font-weight: 400; line-height: 1.2; }
.home-contact-cta .section-kicker { color: #d3dfcf; }
.about-story-section { display: grid; grid-template-columns: .8fr 1fr; gap: clamp(35px, 8vw, 120px); padding: 90px clamp(20px, 3.5vw, 88px); background: #fff; }
.about-story-section h2, .approach-page-intro h2 { margin: 13px 0 0; color: #24372c; font-family: Georgia, serif; font-size: clamp(30px, 3.5vw, 44px); font-weight: 400; line-height: 1.18; }
.about-story-section > div:last-child p, .approach-page-intro > p { color: #65736a; font-size: 17px; line-height: 1.8; }
.about-values-section { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding: 0 clamp(20px, 3.5vw, 88px) 90px; background: #fff; }
.about-values-section article { padding: 24px; border: 1px solid #e2e9df; border-radius: 4px; background: #f7f8f3; }
.about-values-section article > span { color: #67896c; font-size: 15px; font-weight: 700; letter-spacing: .1em; }
.about-values-section h2 { margin: 17px 0 8px; color: #2c4233; font-family: Georgia, serif; font-size: 26px; font-weight: 400; }
.about-values-section p { margin: 0; color: #68766b; font-size: 16px; line-height: 1.65; }
.projects-page-hero { padding-bottom: 76px; }
.projects-page-section { padding-top: 60px; }
.project-listing-disclaimer { margin: 24px 0 0; color: #6a786d; font-size: 15px; line-height: 1.6; }
.mission-vision-page-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding: 80px clamp(20px, 3.5vw, 88px); background: #fff; }
.mission-vision-page-grid .mission-card, .mission-vision-page-grid .vision-card { min-height: 280px; padding: 32px; }
.mission-vision-page-grid h2 { max-width: 440px; margin: 44px 0 14px; color: #2c4233; font-family: Georgia, serif; font-size: clamp(25px, 2.4vw, 32px); font-weight: 400; line-height: 1.3; }
.mission-vision-page-grid p { margin: 0; color: #66766a; font-size: 17px; line-height: 1.75; }
.mission-values-band { display: grid; justify-items: center; gap: 18px; padding: 68px 22px; color: #f4f1e7; background: linear-gradient(110deg, #173f35, #285b45); text-align: center; }
.mission-values-band .section-kicker { color: #d2dfcf; }
.mission-values-band h2 { max-width: 800px; margin: 0; color: #fff; font-family: Georgia, serif; font-size: clamp(28px, 3.6vw, 42px); font-weight: 400; line-height: 1.22; }
.approach-page-section { display: grid; grid-template-columns: .9fr 1fr; gap: clamp(35px, 8vw, 110px); padding: 90px clamp(20px, 3.5vw, 88px); background: #fff; }
.approach-page-intro { align-self: center; }
.approach-page-steps { align-self: center; }
.approach-page-steps article, .approach-page-steps article:first-child { border-color: #e1e8e0; }
.approach-steps.approach-page-steps h3 { color: #2c4233; font-size: 21px; }
.approach-steps.approach-page-steps p { color: #65736a; font-size: 16px; }
.contact-page-hero { padding-bottom: 64px; }
.contact-page-section { padding-top: 70px; }
.mission-vision-section { display: grid; grid-template-columns: 1.1fr 1fr 1fr; align-items: center; gap: clamp(20px, 4vw, 55px); padding: 70px clamp(20px, 3.5vw, 88px); background: #fff; }
.mission-vision-heading h2 { margin: 14px 0 10px; color: #24372c; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(30px, 3.2vw, 42px); font-weight: 400; letter-spacing: -.035em; line-height: 1.16; }
.mission-vision-heading h2 span { color: #7b927f; font-style: italic; }
.mission-vision-heading > p { max-width: 310px; margin: 13px 0 0; color: #7d867d; font-size: 10px; line-height: 1.8; }
.mission-card, .vision-card { position: relative; min-height: 205px; padding: 24px 22px 21px; border: 1px solid #dce7dc; border-top: 3px solid #7da88a; background: linear-gradient(145deg, #fbfcf9, #f1f6ef); box-shadow: 0 12px 28px rgba(30,69,49,.06); }
.vision-card { border-top-color: var(--gold); background: linear-gradient(145deg, #fbfaf4, #f5efdf); }
.mission-number { color: #52795b; font-size: 8px; font-weight: 700; letter-spacing: .13em; }
.mission-symbol { position: absolute; top: 19px; right: 20px; color: #6c9f7a; font-size: 18px; }
.mission-card h3, .vision-card h3 { max-width: 290px; margin: 25px 0 9px; color: #2c4233; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(21px, 1.7vw, 24px); font-weight: 400; line-height: 1.3; }
.mission-card p, .vision-card p { margin: 0; color: #778279; font-size: 9px; line-height: 1.75; }
.public-section { padding: 94px clamp(20px, 3.5vw, 88px) 100px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 34px; }
.section-heading h2, .approach-copy h2, .contact-intro h2, .tim-service-intro h2, .tim-approach h2, .tim-contact h2 { margin: 12px 0 0; color: #24372c; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(30px, 3.5vw, 46px); font-weight: 400; letter-spacing: -.035em; line-height: 1.16; }
.section-heading > p { max-width: 345px; margin: 0 0 3px; color: #7d867d; font-size: 11px; line-height: 1.8; }
.public-project-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.project-card { overflow: hidden; border: 1px solid #e7e8e0; background: #fff; }
.project-scene { position: relative; display: block; height: 204px; overflow: hidden; background: #d8e1d4; }
.project-cover-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.project-scene:hover .project-cover-image { transform: scale(1.04); }
.project-gallery-images { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; }
.project-gallery-images img { width: 100%; height: 100%; min-width: 0; object-fit: cover; }
.project-gallery-images img:first-child:nth-last-child(3) { grid-row: span 2; }
.project-gallery-images.is-single { grid-template-columns: 1fr; }
.project-gallery-images.is-single img { transition: transform .45s ease; }
.project-scene:hover .project-gallery-images.is-single img { transform: scale(1.04); }
.project-scene-sand { background: linear-gradient(150deg, #f0dfbd, #d2bd91 58%, #728e70); }
.project-scene-olive { background: linear-gradient(150deg, #e0e7c8, #a7bd8a 58%, #4e795d); }
.project-scene-blue { background: linear-gradient(150deg, #d5e7e6, #93b9b1 58%, #416c69); }
.scene-index { position: absolute; z-index: 4; top: 14px; left: 15px; color: rgba(41,60,48,.66); font-size: 9px; letter-spacing: .1em; }
.scene-circle { position: absolute; top: 19px; right: 35px; width: 74px; aspect-ratio: 1; border-radius: 50%; background: rgba(233,217,176,.7); }
.scene-tower { position: absolute; z-index: 2; bottom: 15%; width: 24%; background: linear-gradient(90deg, #738b77, #f0eddf 18%, #d7ded0 100%); box-shadow: 11px 9px 28px rgba(43,63,49,.12); }
.scene-tower::before { position: absolute; inset: 13px 8px; content: ''; background: repeating-linear-gradient(0deg, transparent 0 17px, rgba(91,124,100,.7) 17px 21px), repeating-linear-gradient(90deg, transparent 0 16px, rgba(91,124,100,.4) 16px 19px); }
.tower-one { left: 20%; height: 53%; }
.tower-two { left: 42%; height: 74%; width: 25%; }
.tower-three { right: 14%; height: 43%; width: 20%; background: linear-gradient(90deg, #5d7964, #dbe1d1 25%); }
.scene-ground { position: absolute; z-index: 3; right: -4%; bottom: 0; left: -4%; height: 21%; background: linear-gradient(90deg, #617d67, #899981); clip-path: polygon(0 40%, 22% 0, 43% 38%, 67% 10%, 100% 35%, 100% 100%, 0 100%); }
.project-status { position: absolute; z-index: 4; right: 11px; bottom: 10px; display: inline-flex; align-items: center; gap: 6px; padding: 7px 9px; color: #435a47; background: rgba(250,249,245,.92); font-size: 8px; }
.project-status i { width: 6px; height: 6px; border-radius: 50%; background: #61a386; }
.project-card-copy { padding: 17px 16px 15px; }
.project-card-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.project-card-title h3 { margin: 0; color: #2a3e31; font-family: Georgia, serif; font-size: clamp(20px, 1.8vw, 23px); font-weight: 400; line-height: 1.25; }
.project-card-title h3 a:hover { color: #47755a; }
.project-card-title small { display: block; margin-top: 6px; color: #8b948b; font-size: 9px; }
.project-card-title > a { display: grid; width: 27px; height: 27px; place-items: center; border: 1px solid #e8ebe5; border-radius: 50%; color: #54745d; font-size: 12px; }
.project-price { margin: 15px 0 0; color: #586e5c; font-size: 12px; font-weight: 600; }
.project-price small { color: #8c968d; font-size: 8px; font-weight: 400; }
.project-description { margin: 10px 0 4px; color: #667369; font-size: 16px; line-height: 1.6; }
.project-inquire { display: flex; justify-content: space-between; margin-top: 15px; padding-top: 12px; border-top: 1px solid #edf0e9; color: #496a51; font-size: 9px; font-weight: 650; }
.project-inquire span { font-size: 13px; }
.project-card-actions { display: flex; align-items: center; gap: 16px; margin-top: 15px; padding-top: 12px; border-top: 1px solid #edf0e9; }
.project-card-actions .project-inquire { flex: 1; margin: 0; padding: 0; border: 0; }
.project-card-contact { color: #667369; font-size: 16px; font-weight: 600; }
.project-card-contact:hover { color: #315d46; }
.project-empty { display: grid; min-height: 225px; place-content: center; justify-items: center; padding: 26px; border: 1px dashed #cad3c7; color: #546a58; text-align: center; }
.project-empty-icon { color: #6d9b7c; font-size: 30px; }
.project-empty strong { margin-top: 10px; font-family: Georgia, serif; font-size: 19px; font-weight: 400; }
.project-empty p { margin: 8px 0 13px; color: #849087; font-size: 10px; }
.property-breadcrumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 20px clamp(20px, 3.5vw, 88px); color: #768379; background: #f8f7f3; font-size: 16px; }
.property-breadcrumbs a { color: #496a51; }
.property-breadcrumbs a:hover { text-decoration: underline; }
.property-breadcrumbs [aria-current="page"] { color: #34483a; }
.property-overview { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr); gap: clamp(26px, 5vw, 72px); padding: 20px clamp(20px, 3.5vw, 88px) 76px; }
.property-overview-gallery { min-width: 0; }
.property-gallery-main { position: relative; display: grid; min-height: 330px; max-height: 620px; aspect-ratio: 1.35; place-items: center; overflow: hidden; background: #e8ede6; }
.property-gallery-main > img { display: block; width: 100%; height: 100%; max-height: 620px; object-fit: cover; }
.property-photo-count { position: absolute; right: 15px; bottom: 15px; padding: 8px 12px; border-radius: 3px; color: #fff; background: rgba(25,49,38,.82); font-size: 16px; }
.property-gallery-thumbnails { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.property-gallery-thumbnail { min-width: 0; height: 94px; padding: 0; overflow: hidden; border: 2px solid transparent; background: #e8ede6; }
.property-gallery-thumbnail.is-active, .property-gallery-thumbnail:focus-visible { border-color: #496f55; outline: 0; }
.property-gallery-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; }
.property-gallery-placeholder { position: relative; min-height: 390px; overflow: hidden; background: linear-gradient(150deg, #e4e9dd, #c2d3c2 55%, #799783); }
.property-gallery-placeholder .scene-circle { top: 12%; right: 16%; width: clamp(75px, 10vw, 140px); }
.property-gallery-placeholder .scene-tower { bottom: 12%; }
.property-gallery-placeholder .tower-one { left: 17%; height: 48%; }
.property-gallery-placeholder .tower-two { left: 39%; height: 67%; }
.property-gallery-placeholder .tower-three { right: 13%; height: 41%; }
.property-overview-panel { align-self: start; padding: clamp(22px, 3.5vw, 42px); border: 1px solid #e6e9e1; background: #fff; box-shadow: 0 15px 42px rgba(31,48,36,.055); }
.property-overview-panel h1 { margin: 18px 0 7px; color: #24372c; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(34px, 4vw, 54px); font-weight: 400; letter-spacing: -.04em; line-height: 1.12; }
.property-location { margin: 0; color: #6a786d; font-size: 16px; line-height: 1.6; }
.property-overview-price { margin: 29px 0 0; color: #315d46; font-size: clamp(25px, 2.7vw, 34px); font-weight: 700; line-height: 1.25; }
.property-overview-price span { color: #78867a; font-size: 16px; font-weight: 500; }
.property-price-on-request { font-size: 24px; }
.property-price-note { margin: 5px 0 0; color: #79857b; font-size: 16px; line-height: 1.55; }
.property-key-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 25px; padding: 17px 0; border-top: 1px solid #e9ede7; border-bottom: 1px solid #e9ede7; }
.property-key-details div { display: grid; gap: 6px; }
.property-key-details span { color: #7c897e; font-size: 16px; }
.property-key-details strong { color: #35493a; font-size: 16px; line-height: 1.45; }
.property-enquiry-note { margin: 19px 0; color: #68776c; font-size: 16px; line-height: 1.7; }
.property-enquiry-button { width: 100%; min-height: 52px; font-size: 16px; }
.property-back-link { display: inline-block; margin-top: 18px; color: #496a51; font-size: 16px; font-weight: 600; }
.property-back-link:hover { text-decoration: underline; }
.property-demo-notice { margin: 17px 0 0; padding: 10px 12px; border-left: 3px solid #c99a48; color: #624a1f; background: #fbf5e8; font-size: 16px; font-weight: 700; line-height: 1.5; }
.property-description-section { display: grid; grid-template-columns: minmax(200px, .65fr) minmax(0, 1.35fr); gap: clamp(25px, 6vw, 86px); padding: 58px clamp(20px, 3.5vw, 88px) 80px; border-top: 1px solid #e7e9e1; background: #fff; }
.property-description-section h2 { margin: 14px 0 0; color: #24372c; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(30px, 3.4vw, 44px); font-weight: 400; line-height: 1.2; }
.property-description-copy p { margin: 0 0 18px; color: #536257; font-size: 16px; line-height: 1.8; white-space: normal; }
.property-description-copy .property-demo-copy { padding: 14px 17px; border: 1px solid #eddfbb; color: #624a1f; background: #fbf5e8; }
.property-description-copy .property-details-disclaimer { margin-top: 22px; color: #78847a; font-size: 16px; }
.property-not-found { min-height: 55vh; display: grid; align-content: center; justify-items: start; gap: 14px; padding: 70px clamp(20px, 3.5vw, 88px); background: linear-gradient(130deg, #f4f2e9, #e8efe5 68%, #dce8dc); }
.property-not-found h1 { max-width: 760px; margin: 4px 0; color: #21372c; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(38px, 5vw, 62px); font-weight: 400; line-height: 1.1; }
.property-not-found > p { max-width: 650px; margin: 0 0 12px; color: #65736a; font-size: 18px; line-height: 1.7; }
.approach-section { display: grid; grid-template-columns: 1fr .85fr; gap: clamp(30px, 8vw, 110px); padding: 81px clamp(20px, 3.5vw, 88px); color: #edf1e8; background: linear-gradient(115deg, #173c32, #285b45 62%, #1d4439); }
.approach-copy .section-kicker { color: #b4c7b4; }
.approach-copy h2 { max-width: 500px; color: #f1f0e6; }
.approach-copy > p { max-width: 470px; margin: 19px 0 24px; color: #c1cabe; font-size: 11px; line-height: 1.8; }
.approach-steps { align-self: center; }
.approach-steps article, .tim-process article { display: flex; gap: 18px; padding: 17px 0; border-bottom: 1px solid rgba(239,244,235,.16); }
.approach-steps article:first-child, .tim-process article:first-child { border-top: 1px solid rgba(239,244,235,.16); }
.approach-steps article > span, .tim-process article > span { color: #9bc3a6; font-family: Georgia, serif; font-size: 17px; }
.approach-steps h3, .tim-process h3 { margin: 1px 0 5px; color: #f0f2e9; font-size: 20px; font-weight: 600; line-height: 1.3; }
.approach-steps p, .tim-process p { margin: 0; color: #b9c5b9; font-size: 9px; line-height: 1.7; }
.contact-section { display: grid; grid-template-columns: .8fr 1fr; gap: clamp(30px, 7vw, 90px); padding: 96px clamp(20px, 3.5vw, 88px); background: #f2f1eb; }
.contact-intro { padding-top: 12px; }
.contact-intro h2 { max-width: 390px; }
.contact-intro > p, .tim-contact-copy > p { max-width: 370px; margin: 15px 0 27px; color: #7a847a; font-size: 11px; line-height: 1.8; }
.contact-details { display: grid; gap: 16px; margin-top: 36px; }
.contact-details > * { display: grid; gap: 4px; color: #465a4a; font-size: 11px; }
.contact-details > * > span { color: #8c968b; font-size: 8px; font-weight: 700; letter-spacing: .12em; }
.contact-form-card { padding: clamp(20px, 3vw, 33px); background: #fff; box-shadow: 0 8px 33px rgba(31,48,36,.045); }
.public-form { display: grid; gap: 14px; }
.public-form label:not(.consent-row):not(.form-honeypot) { display: grid; gap: 7px; color: #4b5b4d; font-size: 9px; font-weight: 650; }
.public-form input:not([type=checkbox]), .public-form select, .public-form textarea { width: 100%; min-height: 41px; padding: 10px 11px; border: 1px solid #e5e9e2; border-radius: 2px; outline: none; color: #334237; background: #fff; font-size: 10px; }
.public-form textarea { min-height: 91px; resize: vertical; }
.public-form input:focus, .public-form select:focus, .public-form textarea:focus { border-color: #7aa58b; box-shadow: 0 0 0 3px rgba(94,147,112,.12); }
.public-form input::placeholder, .public-form textarea::placeholder { color: #a5ada5; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.consent-row { display: flex; align-items: flex-start; gap: 8px; color: #7d877d; font-size: 8px; line-height: 1.6; }
.consent-row input { width: 14px; height: 14px; flex: 0 0 auto; margin: 1px 0 0; accent-color: #477a5a; }
.form-submit { width: 100%; justify-content: space-between; min-height: 44px; }
.privacy-note { margin: -5px 0 0; color: #a0a79e; font-size: 8px; line-height: 1.6; }
.form-success, .form-error { display: grid; gap: 5px; margin-bottom: 15px; padding: 12px 14px; font-size: 10px; line-height: 1.6; }
.form-success { color: #2d6145; background: #e9f4e9; }
.form-error { color: #9e4545; background: #fff0ee; }
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.public-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 22px clamp(20px, 3.5vw, 88px); border-top: 1px solid #e8e8df; color: #858e84; background: #faf9f5; font-size: 8px; }
.public-footer .public-brand { font-size: 12px; }
.public-footer .public-brand-symbol { width: 29px; height: 29px; font-size: 13px; }
.public-footer a:not(.public-brand) { color: #65786a; }
.kavi-footer { display: block; padding: 0 clamp(20px, 3.5vw, 88px); border-top: 0; color: #e8eee7; background: #20382d; font-size: 10px; }
.kavi-footer a:not(.public-brand) { color: #c8d9cb; }
.footer-main { display: grid; grid-template-columns: 1.35fr .8fr .95fr 1fr; gap: clamp(24px, 5vw, 70px); padding: 53px 0 43px; }
.kavi-footer .public-brand { color: #f4f3e9; font-size: 15px; }
.kavi-footer .public-brand small { color: #afc1b1; }
.kavi-footer .public-brand-symbol { border-color: #92aa95; color: #deeadc; }
.footer-brand-column > p { max-width: 230px; margin: 18px 0 26px; color: #bac8ba; font-size: 10px; line-height: 1.8; }
.kavi-footer a.footer-cta:not(.public-brand) { min-height: 52px; padding: 14px 24px; gap: 24px; border-radius: 3px; color: #17382f; background: #e5eee2; font-size: 17px; font-weight: 700; line-height: 1.4; }
.kavi-footer a.footer-cta:not(.public-brand):hover, .kavi-footer a.footer-cta:not(.public-brand):focus-visible { color: #17382f; background: #fff; }
.footer-cta span { font-size: 18px; }
.footer-social-links { display: flex; flex: 0 0 auto; align-items: center; gap: 10px; }
.footer-bottom > .footer-social-links { grid-column: 2; justify-self: center; margin: 0; }
.footer-social-links > a, .footer-social-links > span { display: grid; width: 27px; height: 27px; place-items: center; border: 1px solid rgba(227,238,226,.62); border-radius: 50%; color: #e1ebe2; }
.footer-social-links > a { transition: color .15s, background .15s, border-color .15s; }
.footer-social-links > a:hover, .footer-social-links > a:focus-visible { border-color: #c1d1c2; color: #20382d; background: #c1d1c2; }
.footer-social-links svg { display: block; width: 14px; height: 14px; fill: currentColor; }
.footer-social-links svg rect, .footer-social-links svg circle:not(.social-icon-dot) { fill: none; stroke: currentColor; stroke-width: 1.8; }
.footer-social-links svg .social-icon-dot { fill: currentColor; stroke: none; }
.footer-link-column { display: grid; align-content: start; justify-items: start; gap: 12px; }
.footer-link-column h2 { margin: 4px 0 7px; color: #f1f1e8; font-family: 'Segoe UI', Arial, sans-serif; font-size: 18px; font-weight: 650; }
.footer-link-column > a, .footer-link-column > span { color: #b6c4b8; font-size: 9px; line-height: 1.7; }
.footer-link-column > a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.footer-contact-column > a { overflow-wrap: anywhere; }
.footer-bottom { display: grid; min-height: 49px; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 15px; border-top: 1px solid rgba(227,238,226,.16); color: #aab9ab; font-size: 8px; }
.footer-bottom > span { grid-column: 1; }
.footer-bottom > a { color: #c1d1c2; }
.kavi-footer .footer-credit { grid-column: 3; justify-self: end; color: #d4e1d6; font-size: 8px; white-space: nowrap; }
.footer-credit:hover, .footer-credit:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.consent-row a { color: #3d7957; text-decoration: underline; text-underline-offset: 2px; }
.privacy-content { max-width: 850px; min-height: 70vh; margin: 0 auto; padding: 80px 24px 90px; }
.privacy-content h1, .privacy-content h2 { color: #24372c; font-family: Georgia, 'Times New Roman', serif; font-weight: 400; letter-spacing: -.035em; }
.privacy-content h1 { margin: 17px 0 7px; font-size: clamp(34px, 4.5vw, 54px); line-height: 1.12; }
.privacy-updated { margin: 0 0 31px; color: #8b958b; font-size: 9px; }
.privacy-content h2 { margin: 29px 0 9px; font-size: clamp(22px, 2.3vw, 26px); line-height: 1.3; }
.privacy-content p { color: #647267; font-size: 12px; line-height: 1.9; }
.privacy-content a { color: #3f7957; text-decoration: underline; text-underline-offset: 2px; }
.policy-notice { margin: 24px 0; padding: 16px 18px; border-left: 3px solid #8ba88e; color: #566b59; background: #eef3eb; font-size: 11px; line-height: 1.8; }
.tim-site.privacy-page { color: #263a38; }
.tim-site.privacy-page .public-header { color: #f0f3f3; }
.tim-site.privacy-page .privacy-content h1, .tim-site.privacy-page .privacy-content h2 { color: #213b3d; }

.tim-site { --paper: #f5f5f2; --ink: #ebf1f1; background: #f5f5f2; }
.tim-site .public-header { color: #f0f3f3; background: #111f27; }
.tim-site .public-brand { color: #f0f3f3; }
.tim-site .public-brand small { color: #96a7aa; }
.tim-brand-symbol { position: relative; display: grid; width: 39px; height: 39px; place-items: center; border: 1px solid #547879; color: #7ed1bb; font-family: 'Segoe UI', Arial, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: -.04em; }
.tim-brand-symbol > span { position: absolute; top: -5px; right: -6px; color: #e3b376; font-size: 12px; }
.tim-site .public-nav > a { color: #bcc8ca; }
.tim-site .public-nav > a:hover { color: #83d0b8; }
.tim-site .public-nav .nav-other-site { border-color: #31414a; color: #a0b0b4; }
.tim-hero { display: grid; min-height: 514px; grid-template-columns: 1fr .9fr; padding: 0 clamp(20px, 7.5vw, 100px); color: #eff3f2; background: #15262e; }
.tim-hero-copy { align-self: center; padding: 68px 24px 68px 0; }
.tim-site .section-kicker { color: #a3bab5; }
.tim-site .section-kicker i { background: #72cfb2; }
.tim-hero h1 { max-width: 610px; margin-top: 22px; color: #eff2ed; }
.tim-hero h1 span { color: #71c6ae; font-style: italic; }
.tim-hero-copy > p { max-width: 475px; margin: 19px 0 24px; color: #bdc8c8; font-size: 12px; line-height: 1.85; }
.text-link-light { color: #d8e3df; }
.tim-hero-proof { display: flex; align-items: center; gap: 11px; margin-top: 53px; color: #a4b6b7; font-size: 9px; }
.tim-hero-proof i { width: 4px; height: 4px; border-radius: 50%; background: #74c6ac; }
.tim-visual { position: relative; min-height: 514px; overflow: hidden; background: radial-gradient(ellipse at 50% 47%, #315654, #1a343d 49%, #15262e 74%); }
.tim-glow { position: absolute; top: 23%; left: 24%; width: 54%; aspect-ratio: 1; border-radius: 50%; background: rgba(80,181,158,.1); filter: blur(32px); }
.system-orbit { position: absolute; top: 14%; left: 13%; width: 76%; height: 67%; border: 1px solid rgba(141,199,180,.23); border-radius: 50%; transform: rotate(-23deg); }
.orbit-b { top: 25%; left: 20%; width: 64%; height: 49%; transform: rotate(28deg); }
.system-node { position: absolute; z-index: 2; display: grid; width: 77px; height: 77px; align-content: center; justify-items: center; gap: 5px; border: 1px solid rgba(153,208,188,.4); border-radius: 50%; color: #ddf1e9; background: rgba(31,66,66,.84); box-shadow: 0 0 32px rgba(69,167,142,.1); }
.system-node > span { font-family: Georgia, serif; font-size: 17px; }
.system-node small { color: #9dbbb4; font-size: 6px; letter-spacing: .1em; }
.node-center { top: 37%; left: 40%; width: 104px; height: 104px; border-color: #7ecbb0; color: #fff; background: #316a60; box-shadow: 0 0 42px rgba(80,196,164,.2); }
.node-center > span { font-size: 24px; }
.node-one { top: 18%; left: 42%; }
.node-two { top: 42%; right: 7%; }
.node-three { bottom: 16%; left: 39%; }
.node-four { top: 44%; left: 5%; }
.visual-caption { position: absolute; right: 0; bottom: 24px; left: 0; color: #afc2be; font-size: 9px; text-align: center; }
.tim-service-intro { padding: 84px 20px 28px; text-align: center; }
.tim-service-intro h2 { margin-top: 14px; color: #1e3439; }
.tim-service-intro > p { max-width: 440px; margin: 14px auto 0; color: #738182; font-size: 11px; line-height: 1.8; }
.tim-site .section-kicker { color: #6b8680; }
.tim-services-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 15px; padding: 19px clamp(20px, 7.5vw, 100px) 91px; }
.tim-service-card { min-height: 300px; padding: 24px 22px 20px; border: 1px solid #e3e8e5; background: #fff; }
.service-number { color: #899696; font-size: 8px; font-weight: 700; letter-spacing: .11em; }
.service-icon { display: grid; width: 40px; height: 40px; place-items: center; margin-top: 21px; border-radius: 10px; font-size: 18px; }
.service-teal { color: #318b79; background: #e6f4ef; }.service-blue { color: #4c80a6; background: #eaf1f6; }.service-violet { color: #7864a1; background: #f0ecf7; }
.tim-service-card h3 { margin: 15px 0 8px; color: #253c40; font-family: Georgia, serif; font-size: clamp(21px, 1.8vw, 24px); font-weight: 400; line-height: 1.3; }
.tim-service-card > p { min-height: 45px; margin: 0; color: #7b8989; font-size: 10px; line-height: 1.7; }
.tim-service-card ul { display: grid; gap: 7px; margin: 15px 0 19px; padding: 0; list-style: none; }
.tim-service-card li { color: #607174; font-size: 9px; }
.tim-service-card li::before { margin-right: 8px; color: #4ba48e; content: '✓'; }
.tim-service-card > a { display: flex; justify-content: space-between; padding-top: 13px; border-top: 1px solid #e9eeeb; color: #3f796d; font-size: 9px; font-weight: 650; }
.tim-approach { display: grid; grid-template-columns: .8fr 1fr; gap: clamp(35px, 8vw, 110px); padding: 77px clamp(20px, 7.5vw, 100px); color: #edf1f1; background: #192e35; }
.tim-approach h2 { color: #eff1ed; }
.tim-approach-heading > p { max-width: 355px; margin: 16px 0 22px; color: #bdc9c7; font-size: 10px; line-height: 1.8; }
.tim-process { align-self: center; }
.tim-process article { border-color: rgba(223,238,232,.13); }
.tim-process article > span { color: #74c4a9; }
.tim-process p { max-width: 355px; }
.tim-contact { display: grid; grid-template-columns: .86fr 1fr; gap: clamp(35px, 7vw, 95px); padding: 90px clamp(20px, 7.5vw, 100px); color: #213539; background: #eaf0ed; }
.tim-contact h2 { max-width: 440px; color: #203539; }
.tim-contact-copy > p { color: #718181; }
.tim-contact-points { display: grid; gap: 10px; margin-top: 24px; color: #5c7472; font-size: 9px; }
.tim-contact-points i { margin-right: 8px; color: #3c9c7e; font-style: normal; }
.tim-site .contact-details > * { color: #3d5d58; }
.tim-form-card { border: 1px solid #e4ebe6; }
.tim-site .form-submit { color: #ebf2ef; background: #1b3b3c; }
.tim-site .form-submit:hover { background: #285754; }
.tim-footer { color: #a4b1b4; border-color: #31434a; background: #14252d; }
.tim-footer .public-brand { color: #f0f3f3; }
.tim-footer .public-brand small { color: #98a9aa; }
.tim-footer .public-brand-symbol { border-color: #547879; color: #7ed1bb; }
.tim-footer a:not(.public-brand) { color: #aec1be; }

@media (max-width: 950px) {
    .public-header { min-height: 70px; padding-right: clamp(20px, 3.5vw, 88px); padding-left: clamp(20px, 3.5vw, 88px); }
    .public-nav { gap: 15px; }
    .public-nav > a { font-size: 10px; }
    .public-nav .nav-other-site { padding-left: 11px; }
    .kavi-hero { grid-template-columns: 1fr 1fr; padding-right: clamp(20px, 3.5vw, 88px); padding-left: clamp(20px, 3.5vw, 88px); }
    .tim-hero { grid-template-columns: 1fr 1fr; padding-right: 25px; padding-left: 35px; }
    .kavi-hero h1, .tim-hero h1 { font-size: clamp(40px, 5.2vw, 54px); }
    .hero-visual, .tim-visual { min-height: 480px; }
    .public-section, .approach-section, .contact-section { padding-right: clamp(20px, 3.5vw, 88px); padding-left: clamp(20px, 3.5vw, 88px); }
    .tim-approach, .tim-contact { padding-right: 35px; padding-left: 35px; }
    .public-project-grid, .tim-services-grid { gap: 11px; }
    .project-scene { height: 165px; }
    .tim-services-grid { padding-right: 35px; padding-left: 35px; }
    .tim-service-card { padding-right: 16px; padding-left: 16px; }
    .trust-strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-items: stretch; gap: 8px 12px; text-align: center; }
    .trust-strip i { display: none; }
    .trust-strip span { display: flex; min-height: 48px; align-items: center; justify-content: center; padding: 7px 8px; border: 1px solid rgba(231,213,163,.23); border-radius: 5px; background: rgba(255,255,255,.055); line-height: 1.35; }
    .about-story-section, .approach-page-section { gap: 30px; padding-right: clamp(20px, 3.5vw, 88px); padding-left: clamp(20px, 3.5vw, 88px); }
    .about-values-section, .mission-vision-page-grid { padding-right: clamp(20px, 3.5vw, 88px); padding-left: clamp(20px, 3.5vw, 88px); }
    .home-story-section { min-height: 390px; }
    .home-story-visual, .home-story-visual > img { min-height: 390px; }
    .home-story-copy { padding: 34px; }
    .home-story-copy h2 { font-size: clamp(30px, 3.5vw, 40px); }
    .property-overview { grid-template-columns: minmax(0, 1.1fr) minmax(285px, .9fr); gap: 20px; padding-right: clamp(20px, 3.5vw, 88px); padding-left: clamp(20px, 3.5vw, 88px); }
    .property-overview-panel { padding: 22px; }
    .property-gallery-main { min-height: 285px; }
    .property-description-section { padding-right: clamp(20px, 3.5vw, 88px); padding-left: clamp(20px, 3.5vw, 88px); }
}
@media (max-width: 1100px) and (min-width: 701px) {
    .public-header { display: grid; grid-template-columns: 1fr auto auto; }
    .public-header > .public-brand { grid-column: 1; grid-row: 1; }
    .public-header > .public-nav { grid-column: 1 / -1; grid-row: 2; justify-content: center; flex-wrap: wrap; gap: 10px 24px; padding: 8px 0 13px; }
}
@media (max-width: 700px) {
    html { scroll-padding-top: 67px; }
    .public-header { display: flex; min-height: 65px; padding: 0 clamp(20px, 3.5vw, 88px); }
    .public-brand { gap: 8px; font-size: 13px; }
    .public-brand-symbol { width: 32px; height: 32px; }
    .public-menu-toggle { display: grid; place-items: center; margin-left: auto; }
    .public-nav { position: absolute; top: 64px; right: 0; left: 0; display: none; grid-column: auto; grid-row: auto; align-items: stretch; gap: 0; padding: 8px 17px 14px; border-top: 1px solid rgba(130,150,140,.17); background: #faf9f5; box-shadow: 0 13px 18px rgba(28,44,35,.08); }
    .public-nav.is-open { display: grid; }
    .public-nav > a { padding: 13px 7px; border-bottom: 1px solid #eceee7; font-size: 16px; }
    .public-nav > .header-cta { width: fit-content; min-height: 43px; margin: 12px 7px 0; padding: 0 17px; border: 1px solid transparent; color: #fff; font-size: 16px; }
    .public-nav > .public-login-link { width: fit-content; margin: 12px 7px 0; padding: 11px 16px; border-color: #9eafa2; font-size: 16px; }
    .public-nav .nav-other-site { padding-left: 7px; border-left: 0; }
    .tim-site .public-nav { background: #15262e; }
    .tim-site .public-nav > a { border-color: #2a3a40; }
    .header-cta { min-height: 34px; gap: 8px; padding: 0 10px; font-size: 9px; }
    .kavi-hero, .tim-hero { grid-template-columns: 1fr; padding: 0; }
    .kavi-hero-copy { padding: 47px clamp(20px, 3.5vw, 88px) 36px; }
    .tim-hero-copy { padding: 47px 22px 36px; }
    .kavi-hero h1, .tim-hero h1 { margin-top: 19px; font-size: clamp(40px, 10vw, 52px); }
    .kavi-hero-copy > p, .tim-hero-copy > p { max-width: 490px; font-size: 11px; }
    .hero-note, .tim-hero-proof { margin-top: 30px; }
    .hero-visual, .tim-visual { min-height: 340px; }
    .visual-label { right: 14px; bottom: 15px; left: 14px; max-width: none; }
    .visual-slide-copy { max-width: calc(100% - 55px); }
    .visual-slide-copy strong { font-size: 13px; }
    .carousel-controls { bottom: 55px; left: 14px; }
    .trust-strip { display: grid; min-height: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-items: stretch; gap: 8px 12px; padding: 14px 16px; overflow: visible; text-align: center; white-space: normal; }
    .trust-strip i { display: none; }
    .trust-strip span { display: flex; min-height: 48px; align-items: center; justify-content: center; padding: 7px 8px; border: 1px solid rgba(231,213,163,.23); border-radius: 5px; color: #f5f1e5; background: rgba(255,255,255,.055); line-height: 1.35; }
    .mission-vision-section { grid-template-columns: 1fr; gap: 13px; padding: 57px clamp(20px, 3.5vw, 88px); }
    .mission-vision-heading { margin-bottom: 8px; }
    .mission-vision-heading h2 { font-size: clamp(30px, 8vw, 34px); }
    .mission-card, .vision-card { min-height: unset; padding: 21px 18px; }
    .mission-card h3, .vision-card h3 { margin-top: 20px; }
    .public-section { padding: 65px clamp(20px, 3.5vw, 88px) 70px; }
    .section-heading { align-items: flex-start; flex-direction: column; gap: 12px; margin-bottom: 22px; }
    .section-heading h2, .approach-copy h2, .contact-intro h2, .tim-service-intro h2, .tim-approach h2, .tim-contact h2 { font-size: clamp(30px, 8vw, 36px); }
    .section-heading > p { max-width: 430px; font-size: 10px; }
    .public-project-grid, .tim-services-grid { grid-template-columns: 1fr; gap: 13px; }
    .project-scene { height: 210px; }
    .project-card-copy { padding: 16px; }
    .approach-section, .contact-section { grid-template-columns: 1fr; gap: 30px; padding: 62px clamp(20px, 3.5vw, 88px); }
    .tim-approach, .tim-contact { grid-template-columns: 1fr; gap: 30px; padding: 62px 21px; }
    .approach-steps { margin-top: 3px; }
    .contact-details { margin-top: 25px; }
    .contact-form-card { padding: 21px 16px; }
    .public-footer:not(.kavi-footer) { align-items: flex-start; flex-direction: column; gap: 12px; padding: 19px 20px; }
    .kavi-footer { padding: 0 clamp(20px, 3.5vw, 88px); }
    .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 29px 20px; padding: 35px 0 28px; }
    .footer-brand-column { grid-column: 1 / -1; }
    .footer-brand-column > p { max-width: 300px; }
    .footer-bottom { grid-template-columns: 1fr; justify-items: center; gap: 10px; padding: 14px 0; line-height: 1.5; }
    .footer-bottom > span { grid-column: auto; justify-self: center; text-align: center; }
    .footer-bottom > .footer-social-links { grid-column: auto; justify-self: center; }
    .footer-credit { grid-column: auto; justify-self: center; }
    .privacy-content { padding: 56px 21px 65px; }
    .public-footer:not(.kavi-footer) > span:nth-child(2) { margin-top: 3px; }
    .home-link-grid { grid-template-columns: 1fr; gap: 11px; }
    .home-link-grid > a { min-height: 125px; }
    .home-story-section { grid-template-columns: 1fr; }
    .home-story-section .home-story-visual,
    .home-story-section.image-left .home-story-visual { min-height: 270px; order: 0; }
    .home-story-section .home-story-visual > img { min-height: 270px; }
    .home-story-section .home-story-copy,
    .home-story-section.image-left .home-story-copy { max-width: none; order: 1; padding: 42px clamp(20px, 3.5vw, 88px) 48px; }
    .home-story-copy h2 { font-size: clamp(32px, 8vw, 42px); }
    .home-story-copy > p { font-size: 16px; }
    .home-contact-cta { align-items: flex-start; flex-direction: column; padding: 40px clamp(20px, 3.5vw, 88px); }
    .about-story-section, .approach-page-section { grid-template-columns: 1fr; gap: 20px; padding: 58px clamp(20px, 3.5vw, 88px); }
    .about-values-section { grid-template-columns: 1fr; gap: 12px; padding: 0 clamp(20px, 3.5vw, 88px) 58px; }
    .mission-vision-page-grid { grid-template-columns: 1fr; gap: 13px; padding: 52px clamp(20px, 3.5vw, 88px); }
    .mission-vision-page-grid .mission-card, .mission-vision-page-grid .vision-card { min-height: unset; padding: 25px 21px; }
    .mission-vision-page-grid h2 { margin-top: 35px; }
    .projects-page-section { padding: 48px clamp(20px, 3.5vw, 88px) 60px; }
    .public-page-hero { padding: 58px clamp(20px, 3.5vw, 88px) 52px; }
    .public-page-hero h1 { font-size: clamp(38px, 10vw, 50px); }
    .property-breadcrumbs { gap: 7px; padding: 16px 20px; font-size: 16px; }
    .property-overview { grid-template-columns: 1fr; gap: 22px; padding: 12px clamp(20px, 3.5vw, 88px) 52px; }
    .property-gallery-main { min-height: 0; aspect-ratio: 1.12; }
    .property-gallery-thumbnails { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
    .property-gallery-thumbnail { height: 73px; }
    .property-gallery-placeholder { min-height: 285px; }
    .property-overview-panel { padding: 23px 19px; }
    .property-overview-panel h1 { font-size: clamp(32px, 8vw, 42px); }
    .property-overview-price { margin-top: 21px; }
    .property-description-section { grid-template-columns: 1fr; gap: 18px; padding: 44px clamp(20px, 3.5vw, 88px) 55px; }
    .property-description-section h2 { font-size: 32px; }
    .property-not-found { min-height: 50vh; padding: 55px clamp(20px, 3.5vw, 88px); }
    .contact-page-section { padding: 54px clamp(20px, 3.5vw, 88px); }
    .tim-service-intro { padding: 66px 20px 17px; }
    .tim-services-grid { padding: 15px 18px 65px; }
    .tim-service-card { min-height: unset; padding: 21px; }
    .tim-service-card > p { min-height: unset; }
    .tim-service-card ul { margin: 13px 0 16px; }
}
@media (max-width: 420px) {
    .header-cta { max-width: 133px; white-space: normal; }
    .form-row { grid-template-columns: 1fr; gap: 13px; }
    .hero-actions { gap: 15px; }
    .hero-actions .button { gap: 12px; }
    .hero-actions .text-link { font-size: 9px; }
    .project-scene { height: 185px; }
    .node-center { left: 38%; }
    .node-two { right: 3%; }
    .node-four { left: 2%; }
}
body.public-site :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(h1 *):not(h2 *):not(h3 *):not(h4 *):not(h5 *):not(h6 *) {
    font-size: max(16px, 1em) !important;
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; }
}
