:root {
  --site-background: #faf4f0;
  --surface-background: #f4ebe4;
  --text-primary: #133525;
  --text-secondary: #607066;
  --brand-primary: #133525;
  --brand-accent: #b99470;
  --border-color: rgba(19, 53, 37, .15);
  --overlay-background: rgba(12, 32, 23, .55);
  --content-max-width: 1404px;
  --radius-small: 12px;
  --radius-medium: 26px;
  --transition-fast: 180ms ease;
}
* { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; }
body { margin: 0; background: var(--site-background); color: var(--text-primary); font-family: Nunito, "Segoe UI", sans-serif; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.shell { width: min(calc(100% - 124px), var(--content-max-width)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.site-header { padding: 0; }
.site-header__inner { min-height: 115px; display: flex; align-items: center; justify-content: space-between; gap: 44px; }
.brand { display: flex; align-items: center; gap: 18px; width: 390px; flex: none; }
.brand img { display: block; mix-blend-mode: normal; }
.brand__mark { width: 78px; height: 70px; object-fit: contain; }
.brand__wordmark { width: 294px; height: auto; }
.primary-navigation { display: flex; align-items: center; justify-content: flex-end; gap: clamp(34px, 4.1vw, 70px); font-size: 16px; font-weight: 600; letter-spacing: .02em; }
.primary-navigation > a, .nav-dropdown > button { padding: 12px 3px; border: 0; background: transparent; color: inherit; cursor: pointer; transition: opacity var(--transition-fast); }
.primary-navigation > a:hover, .nav-dropdown > button:hover { opacity: .58; }
.nav-dropdown { position: relative; }
.nav-dropdown__menu { position: absolute; z-index: 4; top: 100%; left: 50%; min-width: 190px; padding: 10px; border: 1px solid var(--border-color); border-radius: var(--radius-small); background: rgba(251,245,242,.98); box-shadow: 0 18px 40px rgba(19,53,37,.08); transform: translate(-50%, 8px); opacity: 0; visibility: hidden; transition: var(--transition-fast); }
.nav-dropdown:hover .nav-dropdown__menu, .nav-dropdown.is-open .nav-dropdown__menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.nav-dropdown__menu a { display: block; padding: 9px 12px; border-radius: 8px; font-size: 13px; font-weight: 600; letter-spacing: 0; }
.nav-dropdown__menu a:hover { background: rgba(19,53,37,.07); }
.menu-toggle { display: none; width: 46px; height: 46px; border: 1px solid var(--border-color); border-radius: 50%; background: transparent; align-items: center; justify-content: center; flex-direction: column; gap: 5px; }
.menu-close { display:none; }
.menu-toggle span:not(.sr-only) { width: 18px; height: 1.5px; background: currentColor; }
.hero { position:relative; min-height:clamp(340px,25vw,400px); overflow:hidden; color:var(--text-primary); background:var(--surface-background); }
.hero::after { content:""; position:absolute; z-index:1; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(250,244,240,.86) 0%,rgba(250,244,240,.76) 22%,rgba(250,244,240,.18) 39%,rgba(250,244,240,0) 53%); }
.hero__slides,.hero__slide { position:absolute; inset:0; width:100%; height:100%; }
.hero__slide { display:block; object-fit:cover; object-position:center; opacity:0; transition:opacity 1.35s ease-in-out; }
.hero__slide.is-active { opacity:1; }
.hero__content { position:absolute; z-index:2; inset:0 auto 0 max(62px,calc((100vw - var(--content-max-width))/2)); width:min(510px,38vw); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:18px 0 12px; }
.eyebrow { margin: 0 0 18px; color: var(--brand-accent); font-size: 12px; font-weight: 700; letter-spacing: .2em; }
.hero h1 { max-width:510px; margin:0 0 34px; font-family:"Cormorant Garamond",Georgia,serif; font-size:calc(clamp(31px,2.5vw,40px) + 2px); font-weight:600; line-height:1.32; letter-spacing:.005em; text-shadow:0 3px 11px rgba(19,53,37,.25); }
.filter-button { min-width:194px; min-height:53px; padding:0 26px; border:0; border-radius:15px; display:inline-flex; align-items:center; justify-content:center; background:var(--brand-primary); color:#fff; font-size:15px; font-weight:700; letter-spacing:.03em; cursor:pointer; transition:filter var(--transition-fast); }
.filter-button:hover { filter:brightness(1.12); }
.hero-actions { position:absolute; z-index:2; left:50%; bottom:24px; transform:translateX(-50%); display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(10px,1.35vw,20px); }
.hero-action { display:flex; align-items:center; justify-content:center; min-width:0; min-height:48px; padding:9px 14px; border:1px solid rgba(255,255,255,.68); border-radius:7px; background:rgba(49,40,29,.22); color:#fff; font-family:Nunito,"Segoe UI",sans-serif; font-size:14px; font-weight:600; line-height:1.2; letter-spacing:.02em; text-align:center; text-shadow:0 1px 3px rgba(10,26,19,.55); backdrop-filter:blur(4px); transition:background var(--transition-fast),border-color var(--transition-fast),filter var(--transition-fast); }
.hero-action:hover { border-color:rgba(255,255,255,.88); background:rgba(49,40,29,.31); filter:brightness(1.06); }
.featured { padding-block:31px 45px; min-height:430px; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:30px; margin-bottom:20px; }
.section-heading h2 { margin:0; font-size:16px; font-weight:600; letter-spacing:.01em; }
.section-heading > a { padding:5px 0; border:0; font-size:16px; font-weight:600; }
.home-regions { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; padding-bottom:54px; }
.home-regions a { display:flex; align-items:center; justify-content:center; min-height:46px; padding:8px 10px; border-radius:10px; background:color-mix(in srgb,var(--brand-primary) 80%,white 20%); color:#fff; font-size:14px; font-weight:600; text-align:center; transition:filter var(--transition-fast); }
.home-regions a:hover { filter:brightness(1.12); }
.listing-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.listing-card { position:relative; min-width:0; overflow:hidden; border-radius:7px; aspect-ratio:1.75; background:var(--surface-background); }
.listing-card > a, .listing-card img, .listing-card__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.listing-card img { object-fit: cover; transition: transform 500ms ease, filter var(--transition-fast); }
.listing-card__shade { background:linear-gradient(to bottom,rgba(10,26,19,.17),transparent 38%,transparent 54%,rgba(10,26,19,.72)); }
.listing-card:hover img { transform: scale(1.025); filter: brightness(.94); }
.listing-card__topline,.favorite,.listing-card__meta,.listing-card__place { position:absolute; z-index:2; color:#fff; }
.listing-card__topline { top:14px; left:14px; display:flex; gap:7px; align-items:center; }
.listing-card__topline span { padding:6px 10px; border-radius:7px; background:rgba(69,45,22,.55); backdrop-filter:blur(4px); font-size:13px; font-weight:600; }
.listing-card__topline span+span { font-weight:600; background:rgba(69,45,22,.38); }
.favorite { display:grid; place-items:center; padding:0; top:13px; right:13px; width:30px; height:30px; border:1px solid rgba(255,255,255,.72); border-radius:50%; background:rgba(49,40,29,.32); font-size:21px; line-height:1; cursor:pointer; }
.favorite.is-selected { background: rgba(255,250,246,.88); color: var(--brand-primary); }
.listing-card__meta { bottom:13px; left:14px; display:flex; gap:10px; font-size:16px; font-weight:600; letter-spacing:.02em; }
.listing-card__place { right:14px; bottom:13px; font-size:16px; font-weight:600; letter-spacing:.02em; }
.listing-card--balanced .listing-card__topline span,
.listing-card--balanced .listing-card__meta span,
.listing-card--balanced .listing-card__place,
.listing-card--balanced .favorite { min-height:30px; padding:6px 10px; border:0; border-radius:7px; background:rgba(49,40,29,.20); backdrop-filter:blur(4px); color:#fff; font-size:13px; font-weight:600; line-height:16px; letter-spacing:.02em; }
.listing-card--balanced .listing-card__meta { gap:7px; font-size:13px; }
.listing-card--balanced .favorite { display:grid; place-items:center; width:30px; height:30px; padding:0; font-size:0; font-weight:700; line-height:1; }
.favorite svg { display:block; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.favorite.is-selected svg { fill:currentColor; }
.listing-card--balanced .favorite.is-selected { background:rgba(255,250,246,.88); color:var(--brand-primary); }
.page-navigation { padding-top:18px; margin-bottom:-28px; }
.page-navigation--bottom { display:none; }
.page-navigation a { display:inline-flex; align-items:center; min-height:38px; padding:0 14px; border:1px solid var(--border-color); border-radius:999px; color:var(--text-primary); font-size:16px; font-weight:600; letter-spacing:.02em; transition:background var(--transition-fast),opacity var(--transition-fast); }
.page-navigation a:hover { background:rgba(19,53,37,.06); opacity:.72; }
.empty-state { min-height: 260px; display: grid; place-content: center; text-align: center; border: 1px solid var(--border-color); border-radius: var(--radius-medium); background: rgba(255,255,255,.18); }
.empty-state p { margin: 0 0 7px; font-size: 20px; font-weight: 600; }
.empty-state span { color: var(--text-secondary); }
.site-footer { border-top:1px solid rgba(19,53,37,.1); background:#F6EBE5; color:var(--text-primary); }
.site-footer__main { display:grid; grid-template-columns:minmax(255px,275px) minmax(390px,430px) minmax(150px,1fr) minmax(290px,310px); gap:clamp(28px,2.8vw,44px); padding-block:54px 46px; }
.footer-brand { display:flex; align-items:flex-start; gap:10px; align-self:start; }
.footer-brand img { display:block; object-fit:contain; }
.footer-brand__mark { width:60px; height:55px; }
.footer-brand__wordmark { width:182.5px; height:auto; margin-top:3px; }
.footer-section h2 { margin:0 0 17px; font-size:12px; font-weight:700; letter-spacing:.16em; }
.footer-section,.footer-section address { color:var(--text-secondary); font-size:13px; line-height:1.65; }
.footer-section address { margin:0; font-style:normal; }
.footer-section a { transition:opacity var(--transition-fast); }
.footer-section a:hover { opacity:.58; }
.footer-regions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; max-width:420px; }
.footer-regions > div,.footer-social__rows,.footer-contact address { display:grid; grid-template-rows:repeat(4,21px); align-content:start; row-gap:6px; }
.footer-social { position:relative; left:-44px; display:flex; flex-direction:column; align-items:flex-start; justify-self:end; }
.footer-social__rows span { color:var(--text-primary); font-size:11px; font-weight:400; letter-spacing:.1em; }
.footer-social__rows a { color:var(--text-secondary); font-weight:400; white-space:nowrap; }
.footer-social__rows > *,.footer-contact address > *,.footer-regions span { line-height:21px; }
.footer-contact { justify-self:end; min-width:290px; }
.site-footer__bottom { display:flex; align-items:center; justify-content:space-between; gap:36px; padding-block:17px 19px; border-top:1px solid rgba(19,53,37,.13); color:var(--text-secondary); font-size:11px; }
.site-footer__bottom p { margin:0; font-weight:400; }
.site-footer__bottom nav { display:flex; align-items:center; justify-content:flex-end; gap:24px; white-space:nowrap; }
.site-footer__bottom a { font-weight:400; transition:opacity var(--transition-fast); }
.site-footer__bottom a:hover { opacity:.58; }
:focus-visible { outline: 2px solid var(--brand-accent); outline-offset: 3px; }
.archive, .page-shell, .error-page { padding-block: 70px 110px; min-height: 65vh; }
.archive__header { display:flex; justify-content:space-between; align-items:end; gap:28px; margin-bottom:38px; }
.archive__header h1, .page-shell h1, .error-page h1, .contact-page h1 { margin:0; font-size:clamp(38px,5vw,68px); font-weight:500; letter-spacing:-.035em; }
.archive__header h1, .contact-page h1 { font-weight:300; }
.page-shell--corporate h1 { font-weight:300; }
.corporate-about { margin-top:38px; }
.corporate-about__image { display:block; width:100%; max-height:680px; border-radius:var(--radius-medium); object-fit:cover; }
.corporate-about__content { max-width:900px; margin:46px auto 0; color:#344b3f; font-size:17px; line-height:1.8; }
.corporate-about__content p { margin:0 0 24px; }
.corporate-about__content h2 { margin:44px 0 16px; color:var(--text-primary); font-size:24px; font-weight:600; }
.corporate-about__content ul { display:grid; gap:10px; margin:0 0 30px; padding-left:22px; }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:38px; }
.service-card { display:grid; grid-template-rows:230px 230px; overflow:hidden; border:1px solid var(--border-color); border-radius:var(--radius-medium); background:rgba(255,255,255,.25); transition:transform var(--transition-fast),box-shadow var(--transition-fast); }
.service-card:hover { transform:translateY(-4px); box-shadow:0 18px 38px rgba(19,53,37,.1); }
.service-card > img { display:block; width:100%; height:100%; object-fit:cover; }
.service-card--contained-image > img { align-self:center; justify-self:center; width:100%; height:100%; object-fit:contain; transform:scale(1.1111); transform-origin:center; }
.service-card__content { display:flex; flex-direction:column; align-items:flex-start; padding:25px; }
.service-card__content h2 { margin:0 0 13px; font-size:21px; font-weight:600; line-height:1.25; }
.service-card__content p { display:-webkit-box; overflow:hidden; margin:0; color:var(--text-secondary); font-size:15px; line-height:1.6; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.service-card__content > span { margin-top:auto; font-size:12px; font-weight:600; letter-spacing:.06em; }
.service-detail { padding-block:70px 110px; }
.service-detail > h1 { max-width:980px; margin:0 0 38px; font-size:clamp(38px,5vw,68px); font-weight:300; line-height:1.08; letter-spacing:-.035em; }
.service-detail__image { display:block; width:100%; max-height:680px; border-radius:var(--radius-medium); background:var(--surface-background); object-fit:contain; }
.service-detail__content { max-width:900px; margin:46px auto 0; color:#344b3f; font-size:17px; line-height:1.8; }
.service-detail__content p { margin:0 0 24px; }
.service-detail__content h2 { margin:42px 0 16px; color:var(--text-primary); font-size:24px; font-weight:600; }
.service-detail__content ul { display:grid; gap:10px; margin:0 0 30px; padding-left:22px; }
.reference-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin-top:38px; }
.reference-card { display:grid; grid-template-rows:220px 78px; overflow:hidden; padding:0; border:1px solid var(--border-color); border-radius:var(--radius-medium); background:rgba(255,255,255,.25); color:var(--text-primary); font:inherit; cursor:pointer; transition:transform var(--transition-fast),box-shadow var(--transition-fast); }
.reference-card:hover { transform:translateY(-4px); box-shadow:0 18px 38px rgba(19,53,37,.1); }
.reference-card__image { display:grid; place-items:center; overflow:hidden; padding:18px; background:rgba(255,255,255,.32); }
.reference-card__image img { display:block; width:100%; height:100%; object-fit:contain; }
.reference-grid > .reference-card:nth-child(1) .reference-card__image img { transform:translateY(-20px); }
.reference-grid > .reference-card:nth-child(n+4) .reference-card__image img { transform:translateY(-50px); }
.reference-grid > .reference-card:nth-child(7) .reference-card__image img { transform:translateY(-50px) scale(.9); }
.reference-card__name { display:grid; place-items:center; padding:14px 18px; border-top:1px solid var(--border-color); font-size:17px; font-weight:600; line-height:1.3; text-align:center; }
.document-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:38px; }
.document-card { grid-template-rows:360px 92px; }
.document-card .reference-card__name { font-size:16px; }
.reference-lightbox { width:min(920px,calc(100% - 40px)); height:min(82vh,760px); padding:42px; border:0; border-radius:var(--radius-medium); background:var(--site-background); overflow:visible; }
.reference-lightbox::backdrop { background:rgba(5,15,10,.82); backdrop-filter:blur(4px); }
.reference-lightbox > button { position:absolute; z-index:2; top:14px; right:16px; width:42px; height:42px; border:0; background:transparent; color:var(--text-primary); font-size:34px; cursor:pointer; }
.reference-lightbox img { display:block; width:100%; height:100%; object-fit:contain; }
.reference-lightbox[open] img { animation:reference-logo-in 360ms cubic-bezier(.2,.75,.25,1) both; }
@keyframes reference-logo-in { from { opacity:0; transform:scale(.72); } to { opacity:1; transform:scale(1); } }
.news-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:38px; }
.news-card { display:grid; grid-template-rows:260px 260px; overflow:hidden; border:1px solid var(--border-color); border-radius:var(--radius-medium); background:rgba(255,255,255,.25); transition:transform var(--transition-fast),box-shadow var(--transition-fast); }
.news-card:hover { transform:translateY(-4px); box-shadow:0 18px 38px rgba(19,53,37,.1); }
.news-card > img { display:block; width:100%; height:100%; background:var(--surface-background); object-fit:contain; }
.news-card__content { display:flex; flex-direction:column; padding:24px; }
.news-card__content time { margin-bottom:11px; color:var(--brand-accent); font-size:12px; font-weight:600; letter-spacing:.04em; }
.news-card__content h2 { display:-webkit-box; overflow:hidden; margin:0 0 13px; font-size:19px; font-weight:600; line-height:1.3; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.news-card__content p { display:-webkit-box; overflow:hidden; margin:0; color:var(--text-secondary); font-size:14px; line-height:1.6; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.news-detail { padding-block:70px 110px; }
.news-detail > time { display:block; margin-bottom:12px; color:var(--brand-accent); font-size:14px; font-weight:600; }
.news-detail > h1 { max-width:1050px; margin:0 0 38px; font-size:clamp(36px,5vw,64px); font-weight:300; line-height:1.08; letter-spacing:-.035em; }
.news-detail__image { display:block; width:100%; max-height:760px; border-radius:var(--radius-medium); background:var(--surface-background); object-fit:contain; }
.news-detail__content { max-width:900px; margin:46px auto 0; color:#344b3f; font-size:17px; line-height:1.8; }
.news-detail__content p { margin:0 0 24px; white-space:pre-line; }
.archive__header p:not(.eyebrow) { color:var(--text-secondary); }
.outline-button { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:0 22px; border:1px solid var(--border-color); border-radius:999px; background:transparent; color:var(--text-primary); font-size:16px; font-weight:600; letter-spacing:.02em; cursor:pointer; }
.pagination { display:flex; justify-content:center; gap:8px; margin-top:46px; }
.pagination a,.pagination span { min-width:40px; height:40px; display:grid; place-items:center; border:1px solid var(--border-color); border-radius:50%; }
.pagination a.is-current { background:var(--brand-primary); color:white; }
.form-notice,.success-message { padding:12px 16px; border-radius:10px; background:#eee0d2; }
.filter-dialog { width:min(1120px,calc(100% - 40px)); max-height:90vh; padding:0; border:0; border-radius:28px; background:var(--site-background); color:var(--text-primary); font-size:18px; }
.filter-dialog::backdrop { background:rgba(8,27,18,.62); backdrop-filter:blur(3px); }
.filter-dialog__header { position:sticky; z-index:2; top:0; display:flex; justify-content:space-between; align-items:start; padding:28px 34px 20px; border-bottom:1px solid var(--border-color); background:var(--site-background); }
.filter-dialog__header h2 { margin:0; font-size:34px; font-weight:300; }
.filter-dialog__header .eyebrow { margin-bottom:5px; }
.filter-dialog__header .eyebrow { font-size:14px; }
.filter-dialog__header button { width:44px;height:44px;border:1px solid var(--border-color);border-radius:50%;background:transparent;font-size:30px;cursor:pointer; }
.filter-form { padding:10px 34px 34px; }
.filter-section { padding:25px 0; border-bottom:1px solid var(--border-color); }
.filter-section h3 { margin:0 0 18px; font-size:20px; }
.field-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:start; }
.field-grid label,.range-field label,.contact-form label { display:grid; gap:7px; color:var(--text-secondary); font-size:13px; font-weight:600; }
.filter-dialog .field-grid label,.filter-dialog .range-field label { font-size:15px; }
.field-grid select,.field-grid input,.contact-form input,.contact-form textarea { width:100%; min-height:48px; padding:10px 12px; border:1px solid var(--border-color); border-radius:10px; background:rgba(255,255,255,.45); color:var(--text-primary); font:inherit; }
.field-grid select { appearance:none; padding-right:42px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23133525' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; background-size:12px 8px; }
.range-field { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.range-field > span { grid-column:1/-1; font-weight:700; }
.check-field { min-width:0; margin:0; padding:13px; border:1px solid var(--border-color); border-radius:12px; }
.check-field legend { padding:0 6px; font-weight:700; }
.check-field > div { max-height:170px; overflow:auto; display:grid; gap:6px; }
.check-field label { display:flex; grid-template-columns:auto 1fr; align-items:center; gap:8px; color:var(--text-primary); }
.check-field input { width:auto; min-height:auto; }
.filter-actions { position:sticky; bottom:0; display:flex; justify-content:flex-end; align-items:center; gap:18px; padding-top:24px; background:var(--site-background); }
.filter-actions a { font-size:15px;font-weight:700; }
.filter-actions button,.contact-form button { min-height:50px;padding:0 24px;border:0;border-radius:999px;background:var(--brand-primary);color:white;font-weight:700;letter-spacing:.08em; }
.filter-actions button { background:color-mix(in srgb,var(--brand-primary) 80%,white 20%); }
.detail { padding-block:55px 110px; }
.detail__header { display:grid; grid-template-columns:1fr auto; align-items:end; gap:30px; margin-bottom:34px; }
.detail__header h1 { max-width:900px; margin:0 0 12px; font-size:clamp(34px,4vw,58px); font-weight:500; line-height:1.08; }
.detail__header p:not(.eyebrow) { color:var(--text-secondary); }
.detail__header > div:last-child { display:grid; justify-items:end; gap:7px; }
.detail__header strong { font-size:clamp(27px,3vw,42px); }
.detail__header span { color:var(--text-secondary);font-size:13px; }
.detail__layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(300px,.65fr); gap:28px; align-items:start; }
.gallery__viewport { position:relative; overflow:hidden; aspect-ratio:16/10; border-radius:var(--radius-medium); background:#e9dfd7; }
.gallery__image { display:none; width:100%;height:100%;object-fit:contain;cursor:zoom-in; }
.gallery__image.is-active { display:block; }
.gallery[data-gallery-effect="effect1"] .gallery__image { position:absolute; inset:0; display:block; opacity:0; pointer-events:none; transition:opacity 450ms ease-in-out; will-change:opacity; }
.gallery[data-gallery-effect="effect1"] .gallery__image.is-active { opacity:1; pointer-events:auto; }
.gallery[data-gallery-effect="effect2"] .gallery__image { position:absolute; inset:0; display:block; z-index:0; opacity:0; pointer-events:none; transform:translateX(100%); transition:transform 480ms ease-in-out,opacity 480ms ease-in-out; will-change:transform,opacity; }
.gallery[data-gallery-effect="effect2"].is-backward .gallery__image { transform:translateX(-100%); }
.gallery[data-gallery-effect="effect2"] .gallery__image.is-active { z-index:1; opacity:1; pointer-events:auto; transform:translateX(0); }
.gallery[data-gallery-effect="effect2"].is-forward .gallery__image.is-leaving { z-index:1; opacity:1; transform:translateX(-100%); }
.gallery[data-gallery-effect="effect2"].is-backward .gallery__image.is-leaving { z-index:1; opacity:1; transform:translateX(100%); }
.gallery[data-gallery-effect="effect3"] .gallery__image { position:absolute; inset:0; display:block; z-index:0; opacity:0; pointer-events:none; transform:translateX(12%); transition:transform 520ms ease-in-out,opacity 520ms ease-in-out; will-change:transform,opacity; }
.gallery[data-gallery-effect="effect3"].is-backward .gallery__image { transform:translateX(-12%); }
.gallery[data-gallery-effect="effect3"] .gallery__image.is-active { z-index:1; opacity:1; pointer-events:auto; transform:translateX(0); }
.gallery[data-gallery-effect="effect3"].is-forward .gallery__image.is-leaving { z-index:1; opacity:0; transform:translateX(-12%); }
.gallery[data-gallery-effect="effect3"].is-backward .gallery__image.is-leaving { z-index:1; opacity:0; transform:translateX(12%); }
.gallery[data-gallery-effect="effect4"] .gallery__image { position:absolute; inset:0; display:block; z-index:0; opacity:0; pointer-events:none; transform:scale(1); transition:transform 1040ms ease-in-out,opacity 1040ms ease-in-out; will-change:transform,opacity; }
.gallery[data-gallery-effect="effect4"] .gallery__image.is-active { z-index:1; opacity:1; pointer-events:auto; transform:scale(1); }
.gallery[data-gallery-effect="effect4"] .gallery__image.is-leaving { z-index:2; opacity:0; transform:scale(1.035); }
.gallery[data-gallery-effect="effect5"] .gallery__image { position:absolute; inset:0; display:block; z-index:0; opacity:0; pointer-events:none; filter:blur(7px); transition:filter 520ms ease-in-out,opacity 520ms ease-in-out; will-change:filter,opacity; }
.gallery[data-gallery-effect="effect5"] .gallery__image.is-active { z-index:1; opacity:1; pointer-events:auto; filter:blur(0); }
.gallery[data-gallery-effect="effect5"] .gallery__image.is-leaving { z-index:2; opacity:0; filter:blur(7px); }
.gallery[data-gallery-effect="effect6"] .gallery__image { position:absolute; inset:0; display:block; z-index:0; opacity:1; pointer-events:none; clip-path:inset(0 0 0 100%); transition:clip-path 560ms ease-in-out; will-change:clip-path; }
.gallery[data-gallery-effect="effect6"].is-backward .gallery__image { clip-path:inset(0 100% 0 0); }
.gallery[data-gallery-effect="effect6"] .gallery__image.is-active { z-index:2; pointer-events:auto; clip-path:inset(0); }
.gallery[data-gallery-effect="effect6"] .gallery__image.is-leaving { z-index:1; clip-path:inset(0); }
.gallery[data-gallery-effect="effect7"] .gallery__image { position:absolute; inset:0; display:block; z-index:0; opacity:1; pointer-events:none; clip-path:inset(0 50%); transition:clip-path 620ms ease-in-out; will-change:clip-path; }
.gallery[data-gallery-effect="effect7"] .gallery__image.is-active { z-index:2; pointer-events:auto; clip-path:inset(0); }
.gallery[data-gallery-effect="effect7"] .gallery__image.is-leaving { z-index:1; clip-path:inset(0); }
.gallery[data-gallery-effect="effect8"] .gallery__viewport { perspective:1400px; transform-style:preserve-3d; }
.gallery[data-gallery-effect="effect8"] .gallery__image { position:absolute; inset:0; display:block; z-index:0; opacity:1; pointer-events:none; backface-visibility:hidden; transform:rotateY(180deg); transform-style:preserve-3d; transition:transform 700ms cubic-bezier(.45,.05,.55,.95); will-change:transform; }
.gallery[data-gallery-effect="effect8"].is-backward .gallery__image { transform:rotateY(-180deg); }
.gallery[data-gallery-effect="effect8"] .gallery__image.is-active { z-index:2; pointer-events:auto; transform:rotateY(0); }
.gallery[data-gallery-effect="effect8"] .gallery__image.is-leaving { z-index:1; transform:rotateY(-180deg); }
.gallery[data-gallery-effect="effect8"].is-backward .gallery__image.is-leaving { transform:rotateY(180deg); }
.gallery[data-gallery-effect="effect9"] .gallery__image { position:absolute; inset:0; display:block; z-index:0; opacity:0; pointer-events:none; transform:translateX(10%) scale(1.025); transition:transform 620ms cubic-bezier(.22,.61,.36,1),opacity 620ms ease; will-change:transform,opacity; }
.gallery[data-gallery-effect="effect9"].is-backward .gallery__image { transform:translateX(-10%) scale(1.025); }
.gallery[data-gallery-effect="effect9"] .gallery__image.is-active { z-index:2; opacity:1; pointer-events:auto; transform:translateX(0) scale(1); }
.gallery[data-gallery-effect="effect9"] .gallery__image.is-leaving { z-index:1; opacity:0; transform:translateX(-22%) scale(.97); transition-duration:850ms; }
.gallery[data-gallery-effect="effect9"].is-backward .gallery__image.is-leaving { transform:translateX(22%) scale(.97); }
.gallery[data-gallery-effect="effect10"] .gallery__image { position:absolute; inset:0; display:block; z-index:0; opacity:0; pointer-events:none; transform:translateX(9%) scale(1.06); transition:transform 700ms cubic-bezier(.22,.61,.36,1),opacity 700ms ease-in-out; will-change:transform,opacity; }
.gallery[data-gallery-effect="effect10"].is-backward .gallery__image { transform:translateX(-9%) scale(1.06); }
.gallery[data-gallery-effect="effect10"] .gallery__image.is-active { z-index:2; opacity:1; pointer-events:auto; transform:translateX(0) scale(1); }
.gallery[data-gallery-effect="effect10"] .gallery__image.is-leaving { z-index:1; opacity:0; transform:translateX(-9%) scale(.94); }
.gallery[data-gallery-effect="effect10"].is-backward .gallery__image.is-leaving { transform:translateX(9%) scale(.94); }
.gallery[data-gallery-effect="effect11"] .gallery__viewport { perspective:1300px; transform-style:preserve-3d; }
.gallery[data-gallery-effect="effect11"] .gallery__image { position:absolute; inset:0; display:block; z-index:0; opacity:0; pointer-events:none; backface-visibility:hidden; transform:rotateY(0) translateZ(0); transform-origin:left center; clip-path:polygon(0 0,100% 0,100% 100%,0 100%); filter:drop-shadow(0 0 0 rgba(19,53,37,0)); transition:transform 950ms cubic-bezier(.55,.06,.28,.94),clip-path 950ms cubic-bezier(.55,.06,.28,.94),border-radius 950ms ease,filter 950ms ease; will-change:transform,clip-path,filter; }
.gallery[data-gallery-effect="effect11"] .gallery__image.is-active { z-index:1; opacity:1; pointer-events:auto; }
.gallery[data-gallery-effect="effect11"] .gallery__image.is-leaving { z-index:2; opacity:1; pointer-events:none; transform:rotateY(-108deg) rotateZ(-1.2deg) translateX(-3%) translateZ(18px); clip-path:polygon(0 0,100% 2%,96% 91%,82% 100%,0 100%); border-radius:0 0 42% 0; filter:drop-shadow(30px 12px 24px rgba(19,53,37,.38)); }
.gallery[data-gallery-effect="effect11"].is-backward .gallery__image { transform-origin:right center; }
.gallery[data-gallery-effect="effect11"].is-backward .gallery__image.is-leaving { transform:rotateY(108deg) rotateZ(1.2deg) translateX(3%) translateZ(18px); clip-path:polygon(0 2%,100% 0,100% 100%,18% 100%,4% 91%); border-radius:0 0 0 42%; filter:drop-shadow(-30px 12px 24px rgba(19,53,37,.38)); }
.gallery[data-gallery-effect="effect12"] .gallery__viewport { perspective:1500px; transform-style:preserve-3d; }
.gallery[data-gallery-effect="effect12"] .gallery__image { position:absolute; inset:0; display:block; z-index:0; opacity:0; pointer-events:none; }
.gallery[data-gallery-effect="effect12"] .gallery__image.is-active { z-index:1; opacity:1; pointer-events:auto; }
.gallery__bend-sheet { position:absolute; z-index:2; inset:0; pointer-events:none; perspective:1500px; transform-style:preserve-3d; }
.gallery__bend-strip { position:absolute; top:0; bottom:0; left:calc(var(--strip-index) * 12.5%); width:12.5%; overflow:hidden; opacity:1; transform:rotateY(0) translateZ(0) scaleX(1.01); transform-origin:center; filter:drop-shadow(0 0 0 rgba(19,53,37,0)); transition:transform 650ms cubic-bezier(.3,.7,.25,1),filter 650ms ease,opacity 650ms ease; transition-delay:calc(var(--delay-index) * 18ms); will-change:transform,filter,opacity; }
.gallery__bend-strip img { position:absolute; top:0; bottom:0; left:calc(var(--strip-index) * -100%); width:800%; height:100%; max-width:none; object-fit:contain; }
.gallery__bend-sheet.is-bending .gallery__bend-strip { opacity:.16; transform:rotateY(calc(var(--bend-direction) * -76deg)) translateZ(24px) scaleX(.82); filter:drop-shadow(calc(var(--bend-direction) * 16px) 8px 16px rgba(19,53,37,.34)); }
.gallery[data-gallery-effect="effect13"] .gallery__viewport { perspective:1600px; transform-style:preserve-3d; }
.gallery[data-gallery-effect="effect13"] .gallery__image { position:absolute; inset:0; display:block; z-index:0; opacity:0; pointer-events:none; }
.gallery[data-gallery-effect="effect13"] .gallery__image.is-active { z-index:1; opacity:1; pointer-events:auto; }
.gallery__cylinder-sheet { position:absolute; z-index:2; inset:0; pointer-events:none; perspective:1600px; transform-style:preserve-3d; }
.gallery__cylinder-strip { position:absolute; top:0; bottom:0; left:calc(var(--strip-index) * 8.333333%); width:8.333334%; overflow:hidden; opacity:1; transform:rotateY(0) translateZ(0) scaleX(1.015); transform-origin:center; filter:drop-shadow(0 0 0 rgba(19,53,37,0)); transition:transform 520ms cubic-bezier(.36,.05,.25,1),filter 520ms ease,opacity 520ms ease; transition-delay:calc(var(--delay-index) * 15ms); will-change:transform,filter,opacity; }
.gallery__cylinder-strip img { position:absolute; top:0; bottom:0; left:calc(var(--strip-index) * -100%); width:1200%; height:100%; max-width:none; object-fit:contain; }
.gallery__cylinder-sheet.is-warping .gallery__cylinder-strip { opacity:.08; transform:rotateY(var(--cylinder-angle)) translateZ(var(--cylinder-depth)) scaleX(.9); filter:drop-shadow(var(--shadow-x) 7px 13px rgba(19,53,37,.3)); }
.gallery button { position:absolute;z-index:2;top:50%;width:46px;height:46px;border:0;border-radius:50%;background:rgba(19,53,37,.65);color:white;transform:translateY(-50%);cursor:pointer; }
.gallery [data-gallery-prev] { left:16px; }.gallery [data-gallery-next] { right:16px; }
.gallery__viewport,.lightbox > img { touch-action:pan-y pinch-zoom; user-select:none; -webkit-user-select:none; }
.gallery [data-gallery-counter] { position:absolute;z-index:3;right:16px;bottom:16px;padding:7px 11px;border-radius:999px;background:rgba(19,53,37,.7);color:white;font-size:13px; }
.detail-section,.detail-sidebar section { margin-top:24px;padding:28px;border:1px solid var(--border-color);border-radius:var(--radius-medium); }
.detail-section h2,.detail-sidebar h2 { margin:0 0 18px;font-size:22px; }
.description { white-space:pre-line;line-height:1.75;color:#344b3f; }
.feature-list { display:grid;grid-template-columns:repeat(2,1fr);gap:10px 24px;margin:0;padding-left:20px; }
.detail-sidebar { position:sticky;top:20px; }.detail-sidebar section:first-child { margin-top:0; }
.facts { margin:0; }.facts div { display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid var(--border-color); }.facts div:last-child{border:0}.facts dt{color:var(--text-secondary)}.facts dd{margin:0;text-align:right;font-weight:700}
.consultant { display:grid;gap:10px; }.consultant a { font-weight:700; }
.detail video { width:100%;border-radius:14px; }
.lightbox { width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:40px;border:0;background:rgba(5,15,10,.96);color:white; }.lightbox::backdrop{background:#000}.lightbox img{width:100%;height:calc(100% - 30px);object-fit:contain}.lightbox [data-lightbox-close]{position:absolute;right:22px;top:18px;background:transparent;border:0;color:white;font-size:38px}.lightbox span{display:block;text-align:center}
.lightbox__nav { position:absolute; z-index:2; top:50%; display:grid; place-items:center; width:46px; height:46px; padding:0; border:1px solid rgba(255,255,255,.35); border-radius:50%; background:rgba(19,53,37,.65); color:white; font-size:20px; transform:translateY(-50%); cursor:pointer; }
.lightbox [data-lightbox-prev] { left:16px; }.lightbox [data-lightbox-next] { right:16px; }
.contact-page { display:grid;grid-template-columns:1fr 1fr;gap:50px;padding-block:65px 110px; }.contact-copy address{margin:35px 0;font-style:normal}.contact-copy address p{display:grid;gap:5px;margin:18px 0}.contact-copy address span{color:var(--text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.12em}.contact-copy iframe{width:100%;height:330px;border:0;border-radius:var(--radius-medium)}
.legal-page { max-width:980px; padding-block:70px 110px; }
.legal-page header { margin-bottom:42px; }
.legal-page h1 { max-width:820px; margin:0; font-size:clamp(36px,5vw,62px); font-weight:500; line-height:1.08; letter-spacing:-.03em; }
.legal-page section { padding:24px 0; border-top:1px solid var(--border-color); }
.legal-page h2 { margin:0 0 12px; font-size:19px; }
.legal-page p { max-width:820px; margin:0 0 13px; color:#344b3f; line-height:1.75; }
.legal-page a { font-weight:700; }
.contact-form-wrap { padding:34px;border:1px solid var(--border-color);border-radius:var(--radius-medium); }.contact-form-wrap h2{margin-top:0}.contact-form{display:grid;gap:16px}.contact-form textarea{min-height:160px;resize:vertical}.field-error{color:#9a3e32}.placeholder-content{min-height:320px;margin-top:35px;border:1px solid var(--border-color);border-radius:var(--radius-medium)}.error-page{display:grid;place-content:center;text-align:center}.error-page .outline-button{margin:25px auto 0}
.page-shell--property-action { max-width:900px; }
.property-entry { display:grid; gap:22px; margin-top:36px; }
.property-entry label { display:grid; gap:7px; color:var(--text-secondary); font-size:14px; font-weight:600; }
.property-entry input,.property-entry textarea { width:100%; min-height:50px; padding:11px 13px; border:1px solid var(--border-color); border-radius:11px; background:rgba(255,255,255,.45); color:var(--text-primary); font:inherit; }
.property-entry textarea { min-height:145px; resize:vertical; }
.property-entry button { justify-self:start; min-height:50px; padding:0 24px; border:0; border-radius:11px; font:600 14px Nunito,sans-serif; cursor:pointer; }
.property-entry__primary { background:color-mix(in srgb,var(--brand-primary) 80%,white 20%); color:#fff; }
.property-map{height:390px;border-radius:var(--radius-medium);overflow:hidden;background:#e4ddd6}.muted{color:var(--text-secondary);font-size:13px}
.internal-body{min-height:100vh;background:var(--site-background);font-family:Nunito,sans-serif;color:var(--text-primary)}.internal-header{min-height:82px;padding:14px max(24px,4vw);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color);background:rgba(251,245,242,.94)}.internal-header img{width:190px;display:block}.internal-header nav{display:flex;align-items:center;gap:22px}.internal-header nav form{margin:0}.internal-header button,.internal-card button,.internal-title button{border:1px solid var(--border-color);border-radius:9px;padding:10px 14px;background:rgba(255,255,255,.45);font:inherit;cursor:pointer}.internal-shell{width:min(calc(100% - 48px),1320px);margin:0 auto;padding:42px 0 80px}.internal-shell h1{font-size:clamp(30px,4vw,48px);font-weight:500}.internal-card,.login-panel{padding:26px;margin:22px 0;border:1px solid var(--border-color);border-radius:var(--radius-medium);background:rgba(255,255,255,.28)}.login-panel{max-width:480px;margin:10vh auto}.login-panel form,.operation-form{display:grid;gap:15px}.login-panel label,.operation-form label{display:grid;gap:6px}.login-panel input,.operation-form input,.operation-form select,.internal-title input,.internal-title select,.internal-card select{min-height:44px;padding:8px 11px;border:1px solid var(--border-color);border-radius:9px;background:#fffaf7;font:inherit}.internal-primary{background:var(--brand-primary)!important;color:#fff}.metric-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.metric-grid article{padding:22px;border:1px solid var(--border-color);border-radius:16px}.metric-grid strong{display:block;font-size:34px}.metric-grid span{color:var(--text-secondary)}.responsive-table{overflow-x:auto;border:1px solid var(--border-color);border-radius:14px}.responsive-table table{width:100%;border-collapse:collapse;background:rgba(255,255,255,.24)}.responsive-table th,.responsive-table td{padding:13px;text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap}.internal-title{display:flex;justify-content:space-between;align-items:center;gap:20px}.internal-title form{display:flex;gap:8px}.internal-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr);gap:24px}.notice{padding:13px 16px;border-radius:10px;background:#e5eee7}.notice--error{background:#f4ddd8}.internal-card form+form{margin-top:10px}.internal-card pre{white-space:pre-wrap;word-break:break-word}
@media (max-width: 950px) {
  .shell { width: min(calc(100% - 40px), var(--content-max-width)); }
  .listing-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .brand { width:310px; gap:13px; }.brand__mark{width:62px;height:58px}.brand__wordmark{width:235px}
  .hero { min-height:470px; }
  .hero__content { left:40px; width:min(430px,52vw); }
  .home-regions { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .menu-toggle { display: flex; }
  .primary-navigation { position: absolute; z-index: 8; top: 100px; left: 20px; right: 20px; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 18px; border: 1px solid var(--border-color); border-radius: 18px; background: rgba(251,245,242,.98); }
  .primary-navigation.is-open { display:flex; padding-top:48px; }
  .menu-close { position:absolute; top:5px; right:8px; display:grid; place-items:center; width:40px; height:40px; padding:0; border:0; background:transparent; color:var(--text-primary); font-size:30px; line-height:1; cursor:pointer; }
  .nav-dropdown > button { display:block; width:100%; text-align:left; }
  .nav-dropdown__menu { position: static; display: none; padding:0 0 0 12px; border:0; border-radius:0; background:transparent; transform: none; opacity: 1; visibility: visible; box-shadow: none; }
  .nav-dropdown.is-open .nav-dropdown__menu { display: block; transform: none; }
  .site-header { position: relative; }
  .detail__layout,.contact-page { grid-template-columns:1fr; }
  .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .reference-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .document-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .news-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .detail-sidebar { position:static; }
  .site-footer__main { grid-template-columns:minmax(200px,.7fr) minmax(0,1.3fr); gap:42px; }
  .footer-social { left:0; justify-self:start; }
  .footer-contact { justify-self:start; }
  .site-footer__bottom { align-items:flex-start; flex-direction:column; gap:14px; }
  .site-footer__bottom nav { justify-content:flex-start; }
  .metric-grid{grid-template-columns:repeat(2,1fr)}.internal-columns{grid-template-columns:1fr}.internal-header{align-items:flex-start}.internal-header nav{flex-wrap:wrap;justify-content:flex-end}
}
@media (max-width: 620px) {
  .shell { width: min(calc(100% - 28px), var(--content-max-width)); }
  .site-header { padding-top: 14px; }
  .site-header__inner { min-height:68px; gap:8px; }
  .brand { width:min(299.9px,calc(100% - 54px)); gap:10px; }
  .brand__mark { width:clamp(36px,calc(100vw - 316px),52px); height:48px; flex-shrink:0; }
  .brand__wordmark { width:237.9px; min-width:0; flex-shrink:1; }
  .menu-toggle { flex-shrink:0; }
  .hero { min-height:455px; }
  .hero::after{background:linear-gradient(180deg,rgba(250,244,240,.96) 0%,rgba(250,244,240,.87) 40%,rgba(250,244,240,.12) 72%,rgba(250,244,240,0) 100%)}
  .hero__slide { object-position:center; }
  .hero__content { inset:0 24px auto; width:auto; height:310px; justify-content:flex-start; padding-top:38px; }
  .hero h1 { max-width:350px; margin-bottom:25px; font-size:33px; line-height:1.25; }
  .hero-actions { bottom:18px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .hero-action { min-height:46px; padding:7px 8px; font-size:14px; }
  .filter-button{min-width:178px;min-height:50px;border-radius:13px;font-size:14px}
  .page-navigation { padding-top:14px; margin-bottom:-24px; }
  .page-navigation--bottom { display:block; padding-top:0; padding-bottom:28px; margin-bottom:0; }
  .featured { padding-block:42px 80px;min-height:400px }
  .featured { padding-bottom:36px; }
  .home-regions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding-bottom:42px; }
  .section-heading { align-items:center;gap:15px;margin-bottom:18px }
  .section-heading h2{font-size:16px;font-weight:600}.section-heading > a{display:block;font-size:16px;font-weight:600;white-space:nowrap}
  .featured .section-heading h2 { font-size:18px; }
  .listing-grid { grid-template-columns: 1fr; }
  .service-grid { grid-template-columns:1fr; }
  .reference-grid { grid-template-columns:1fr; }
  .document-grid { grid-template-columns:1fr; }
  .news-grid { grid-template-columns:1fr; }
  .news-card { grid-template-rows:240px 240px; }
  .news-detail { padding-block:45px 75px; }
  .news-detail__content { margin-top:32px; font-size:16px; }
  .service-card { grid-template-rows:220px 220px; }
  .reference-lightbox { width:calc(100% - 28px); height:75vh; padding:24px; }
  .service-detail { padding-block:45px 75px; }
  .service-detail__content,.corporate-about__content { margin-top:32px; font-size:16px; }
  .listing-card{aspect-ratio:1.62;border-radius:8px}
  .listing-card__topline span{font-size:12px}.listing-card__meta,.listing-card__place{font-size:14px}
  .featured .listing-card--balanced .listing-card__topline span,
  .featured .listing-card--balanced .listing-card__meta span,
  .featured .listing-card--balanced .listing-card__place { font-size:14px; }
  .site-footer__main { grid-template-columns:1fr; gap:34px; padding-block:48px 40px; }
  .footer-regions { max-width:350px; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(6,auto); grid-auto-flow:column; gap:6px 24px; }
  .footer-regions > div { display:contents; }
  .footer-social { justify-self:start; }
  .footer-contact { grid-column:auto; min-width:0; }
  .site-footer__bottom { padding-block:19px 23px; }
  .site-footer__bottom nav { flex-wrap:wrap; gap:10px 20px; white-space:normal; }
  .site-footer--home .footer-section,.site-footer--home .footer-section address { font-size:15px; }
  .site-footer--home .footer-section h2 { font-size:14px; }
  .site-footer--home .footer-social__rows span,.site-footer--home .site-footer__bottom { font-size:13px; }
  .site-footer--home .footer-social__rows,.site-footer--home .footer-contact address { grid-template-rows:repeat(4,auto); }
  .site-footer--home .footer-social__rows > *,.site-footer--home .footer-contact address > *,.site-footer--home .footer-regions span { line-height:25px; }
  .site-footer--home .footer-social { min-width:0; max-width:100%; }
  .site-footer--home .footer-social__rows { min-width:0; max-width:100%; }
  .site-footer--home .footer-social__rows a,.site-footer--home .footer-contact a { white-space:normal; overflow-wrap:anywhere; }
  .archive,.detail,.contact-page,.page-shell { padding-block:45px 75px; }
  .property-entry label > span { font-size:16px; }
  .property-entry button { width:100%; }
  .archive__header,.detail__header { align-items:start;grid-template-columns:1fr; }
  .detail__header > div:last-child { justify-items:start; }
  .detail { font-size:calc(1rem + 2px); }
  .detail .eyebrow { font-size:14px; }
  .detail__header strong { font-size:calc(clamp(27px,3vw,42px) + 2px); }
  .detail__header span,.detail .gallery [data-gallery-counter] { font-size:15px; }
  .detail-section h2,.detail-sidebar h2 { font-size:24px; }
  .detail + .lightbox { font-size:calc(1rem + 2px); }
  .detail + .lightbox [data-lightbox-close] { font-size:40px; }
  .field-grid { grid-template-columns:1fr; }
  .filter-dialog { width:100%;height:100%;max-height:none;border-radius:0; }
  .filter-dialog__header,.filter-form { padding-left:20px;padding-right:20px; }
  .filter-actions { justify-content:space-between; }
  .gallery__viewport { aspect-ratio:4/3; }
  .gallery [data-gallery-prev],.gallery [data-gallery-next],.lightbox__nav { width:34px; height:34px; padding:0; font-size:16px; }
  .gallery [data-gallery-prev],.lightbox [data-lightbox-prev] { left:10px; }
  .gallery [data-gallery-next],.lightbox [data-lightbox-next] { right:10px; }
  .feature-list { grid-template-columns:1fr; }
  .detail-section,.detail-sidebar section,.contact-form-wrap { padding:21px; }
  .internal-shell{width:calc(100% - 28px);padding-top:28px}.internal-header{display:grid;gap:15px;padding:14px}.internal-header nav{justify-content:flex-start;gap:12px;font-size:13px}.internal-header img{width:165px}.metric-grid{grid-template-columns:1fr}.internal-title{align-items:flex-start;flex-direction:column}.internal-title form{width:100%;display:grid}.property-map{height:320px}
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .hero__slide { transition:none; }
  .reference-lightbox[open] img { animation:none; }
  .gallery[data-gallery-effect="effect1"] .gallery__image,
  .gallery[data-gallery-effect="effect2"] .gallery__image,
  .gallery[data-gallery-effect="effect3"] .gallery__image,
  .gallery[data-gallery-effect="effect4"] .gallery__image,
  .gallery[data-gallery-effect="effect5"] .gallery__image,
  .gallery[data-gallery-effect="effect6"] .gallery__image,
  .gallery[data-gallery-effect="effect7"] .gallery__image,
  .gallery[data-gallery-effect="effect8"] .gallery__image,
  .gallery[data-gallery-effect="effect9"] .gallery__image,
  .gallery[data-gallery-effect="effect10"] .gallery__image,
  .gallery[data-gallery-effect="effect11"] .gallery__image,
  .gallery[data-gallery-effect="effect12"] .gallery__image,
  .gallery[data-gallery-effect="effect13"] .gallery__image,
  .gallery__bend-strip,
  .gallery__cylinder-strip { transition:none; }
}

/* Corporate and contact page typography. */
.page-shell--corporate,.service-detail,.news-detail,.contact-page { font-size:18px; }
.page-shell--corporate .eyebrow,.service-detail .eyebrow,.news-detail .eyebrow,.contact-page .eyebrow { font-size:14px; }
.page-shell--corporate h1,.service-detail > h1,.contact-page h1 { font-size:calc(clamp(38px,5vw,68px) + 2px); }
.news-detail > h1 { font-size:calc(clamp(36px,5vw,64px) + 2px); }
.corporate-about__content,.service-detail__content,.news-detail__content { font-size:19px; }
.corporate-about__content h2,.service-detail__content h2,.contact-form-wrap h2 { font-size:26px; }
.service-card__content h2 { font-size:23px; }
.service-card__content p { font-size:17px; }
.service-card__content > span,.news-card__content time { font-size:14px; }
.reference-card__name { font-size:19px; }
.document-card .reference-card__name { font-size:18px; }
.reference-lightbox > button { font-size:36px; }
.news-card__content h2 { font-size:21px; }
.news-card__content p,.news-detail > time { font-size:16px; }
.contact-copy address span { font-size:14px; }
.contact-form label { font-size:15px; }
.service-card { grid-template-rows:230px minmax(230px,auto); }
.news-card { grid-template-rows:260px minmax(260px,auto); }
.reference-card { grid-template-rows:220px minmax(78px,auto); }
.document-card { grid-template-rows:360px minmax(92px,auto); }
.contact-copy,.contact-form-wrap { min-width:0; }
.contact-copy address a { overflow-wrap:anywhere; }
@media (max-width:620px) {
  .corporate-about__content,.service-detail__content,.news-detail__content { font-size:18px; }
  .service-card { grid-template-rows:220px minmax(220px,auto); }
  .news-card { grid-template-rows:240px minmax(240px,auto); }
}

@media (max-width:620px) {
  .archive--listing-type .archive__header { display:grid; grid-template-columns:minmax(0,1fr); }
  .archive--listing-type .archive__header h1 { font-size:calc(clamp(38px,5vw,68px) + 2px); font-weight:400; }
  .archive--sale .archive__header h1 { white-space:nowrap; }
  .archive--sale .archive__header .eyebrow { display:none; }
  .contact-page h1 { font-size:calc(clamp(38px,5vw,68px) + 4px); font-weight:400; }
}
