:root {
  --own-ink: var(--ow-text, #1a1a1a);
  --own-muted: var(--ow-text-sub, #666666);

  --own-line: var(--ow-border, rgba(0, 0, 0, 0.1));
  --own-line-strong: rgba(255, 107, 0, 0.28);

  --own-surface: var(--ow-bg, #ffffff);
  --own-soft: var(--ow-bg2, #f7f7f5);

  /* 기존 green soft 대체 */
  --own-soft-green: var(--ow-orange-bg, #FFF8F4);

  /* 핵심 브랜드 컬러 */
  --own-primary: var(--ow-orange, #FF6B00);
  --own-primary-dark: var(--ow-orange-dark, #CC5500);
  --own-primary-soft: var(--ow-orange-light, #FFF0E6);

  /* 기존 blue 계열도 오렌지 톤으로 통일 */
  --own-blue-soft: var(--ow-orange-bg, #FFF8F4);
  --own-blue-text: var(--ow-orange-dark, #CC5500);

  --own-shadow: var(--ow-shadow, 0 12px 34px rgba(255, 107, 0, 0.10));

  --own-radius-xl: 24px;
  --own-radius-lg: 18px;
  --own-radius-md: 14px;
}

html {
  box-sizing: border-box;
}



.own-offices-app,
.own-office-detail-wrap,
.own-dashboard,
.own-login-required {
	color: var(--own-ink);
}

.own-toolbar-field input,
.own-toolbar-field select,
.own-contract-input,
.own-dashboard input,
.own-dashboard textarea,
.own-dashboard select {
	appearance: none;
	background: #fff;
	border: 1px solid var(--own-line-strong);
	border-radius: 12px;
	box-shadow: none;
	color: var(--own-ink);
	font: inherit;
	min-height: 48px;
	padding: 0 16px;
	width: 100%;
}

.own-toolbar-field input::placeholder,
.own-contract-input {
	color: #98a2b3;
}

.own-chip-group,
.own-contract-chip-grid,
.own-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.own-chip-group button,
.own-contract-chip,
.own-card button,
.own-dashboard button,
.own-primary,
.own-detail-button {
	align-items: center;
	background: #fff;
	border: 1px solid var(--own-line-strong);
	border-radius: 12px;
	color: var(--own-ink);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: 700;
	justify-content: center;
	min-height: 46px;
	padding: 0 18px;
	text-decoration: none;
	transition: border-color 160ms ease, background 160ms ease, color 160ms ease, transform 160ms ease;
}

.own-chip-group button:hover,
.own-contract-chip:hover,
.own-card button:hover,
.own-dashboard button:hover,
.own-primary:hover,
.own-detail-button:hover {
	transform: translateY(-1px);
}

.own-chip-group button.is-active,
.own-contract-chip.is-active,
.own-primary,
.own-dashboard button {
	background: var(--own-primary-soft);
	border-color: var(--own-primary);
	color: var(--own-primary-dark);
}

.own-primary {
	background: var(--own-primary);
	border-color: var(--own-primary);
	color: #fff;
}

.own-primary:hover,
.own-dashboard button:hover {
	background: var(--own-primary-dark);
	border-color: var(--own-primary-dark);
	color: #fff;
}

.own-secondary,
.own-detail-button {
	background: #fff !important;
	color: var(--own-ink) !important;
}

.own-danger {
	background: #b42318 !important;
	border-color: #b42318 !important;
	color: #fff !important;
}

.own-card,
.own-dashboard-sidebar,
.own-dashboard-main,
.own-login-required {
	background: var(--own-surface);
	border: 1px solid var(--own-line);
	border-radius: var(--own-radius-xl);
	box-shadow: var(--own-shadow);
}

.own-card {
	padding: 18px;
}

.own-manual-qr-public-wrap {
	margin: 0 auto;
	max-width: 560px;
	padding: 48px 18px;
}

.own-manual-qr-public-card {
	display: grid;
	gap: 16px;
	text-align: center;
}

.own-manual-qr-public-card h1 {
	font-size: 30px;
	line-height: 1.25;
	margin: 0;
}

.own-manual-qr-public-card .own-meta {
	margin: 0;
}

.own-manual-qr-public-image {
	background: #fff;
	border: 1px solid var(--own-line);
	border-radius: 18px;
	display: grid;
	justify-items: center;
	padding: 18px;
}

.own-manual-qr-public-image img {
	aspect-ratio: 1;
	display: block;
	max-width: min(320px, 100%);
	object-fit: contain;
	width: 100%;
}

.own-manual-qr-public-info {
	display: grid;
	gap: 8px;
	margin: 0;
	text-align: left;
}

.own-manual-qr-public-info div {
	align-items: center;
	background: var(--own-soft);
	border: 1px solid var(--own-line);
	border-radius: 12px;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	padding: 12px 14px;
}

.own-manual-qr-public-info dt {
	color: var(--own-muted);
	font-size: 13px;
	font-weight: 800;
}

.own-manual-qr-public-info dd {
	font-weight: 900;
	margin: 0;
	text-align: right;
}

.own-meta,
.own-empty,
.own-dashboard-state,
.own-office-detail-summary,
.own-related-card span,
.own-faq-answer {
	color: var(--own-muted);
}

.own-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0 0;
}

.own-tag {
	background: var(--own-soft);
	border-radius: 999px;
	color: var(--own-muted);
	display: inline-flex;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	padding: 7px 11px;
}

.own-tag-accent {
	background: var(--own-blue-soft);
	color: var(--own-blue-text);
}

.own-price {
	color: var(--own-ink);
	font-size: 18px;
	font-weight: 800;
	line-height: 1;
}

/* 목록 페이지 */
.own-offices-app {
	margin: 0 auto;
	max-width: 1880px;
	height: calc(100vh - var(--own-header-height, 80px));
	height: calc(100dvh - var(--own-header-height, 80px));
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.own-office-toolbar {
	align-items: end;
	background: var(--own-surface);
	border: 1px solid var(--own-line);
	border-radius: 0;
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(4, minmax(120px, 1fr)) minmax(140px, auto);
	flex: 0 0 auto;
	margin-bottom: 16px;
	padding: 12px 14px 14px;
}

.own-toolbar-field {
	display: grid;
	gap: 8px;
	min-width: 0;
}

.own-office-view-field {
	display: none;
}

.own-toolbar-field label,
.own-toolbar-label {
	color: var(--own-ink);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
}

.own-office-view-toggle {
	background: var(--own-soft);
	border: 1px solid var(--own-line);
	border-radius: 12px;
	display: grid;
	gap: 4px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	padding: 4px;
}

.own-office-view-toggle button {
	background: transparent;
	border: 0;
	border-radius: 8px;
	color: var(--own-muted);
	cursor: pointer;
	font: inherit;
	font-size: 14px;
	font-weight: 800;
	min-height: 40px;
	padding: 0 12px;
}

.own-office-view-toggle button.is-active {
	background: #fff;
	box-shadow: 0 6px 14px rgba(15, 23, 42, 0.08);
	color: var(--own-primary-dark);
}

.own-office-shell {
	display: grid;
	gap: 0;
	grid-template-columns: 360px minmax(0, 1fr);
	flex: 1 1 auto;
	min-height: 0;
	height: auto;
}

.own-office-rail {
	background: var(--own-surface);
	border: 1px solid var(--own-line);
	border-right: 0;
	display: grid;
	grid-template-rows: auto minmax(0, 1fr);
	min-height: 100%;
}

.own-office-rail,
.own-office-map-stage,
.own-office-list,
.own-office-map {
	min-height: 0;
}

.own-office-rail-head {
	align-items: center;
	border-bottom: 1px solid var(--own-line);
	display: flex;
	justify-content: space-between;
	padding: 14px 14px 10px;
}

.own-office-count {
	font-size: 16px;
	font-weight: 700;
}

.own-office-reset {
	background: transparent;
	border: 0;
	color: var(--own-muted);
	cursor: pointer;
	font-size: 13px;
	font-weight: 700;
	padding: 0;
}

.own-office-list {
	display: grid;
	gap: 14px;
	max-height: 100%;
	overflow: auto;
	padding: 12px;
}

.own-office-map-stage {
	border: 1px solid var(--own-line);
	min-height: 100%;
	overflow: hidden;
	position: relative;
}

.own-office-map {
	height: 100%;
	min-height: 0 !important;
	width: 100%;
}

.own-map-search-layer {
	display: flex;
	gap: 10px;
	left: 18px;
	position: absolute;
	top: 18px;
	z-index: 30;
}

.own-map-search-box {
	background: rgba(255, 255, 255, 0.96);
	border: 1px solid var(--own-line);
	border-radius: 16px;
	box-shadow: var(--own-shadow);
	padding: 10px 14px;
	width: min(320px, calc(100vw - 120px));
}

.own-map-search-box .own-office-search {
	background: transparent;
	border: 0;
	box-shadow: none;
	color: var(--own-ink);
	font: inherit;
	outline: none;
	padding: 0;
	width: 100%;
}

.own-map-geolocate {
	align-items: center;
	background: rgba(255, 255, 255, 0.96);
	border: 1px solid var(--own-line);
	border-radius: 50px;
	box-shadow: var(--own-shadow);
	display: inline-flex;
	font-size: 0;
	font-weight: 700;
	justify-content: center;
	height: 50px;
	padding: 0;
	position: relative;
	width: 50px;
	transition: opacity 160ms ease, transform 160ms ease;
}

.own-map-geolocate svg {
	width: 20px;
	height: 20px;
	transition: opacity 160ms ease, transform 160ms ease;
}

.own-map-geolocate.is-loading {
	cursor: wait;
	opacity: 0.9;
	transform: scale(0.96);
	pointer-events: none;
}

.own-map-geolocate.is-loading svg {
	animation: own-spin 0.9s linear infinite;
}

@keyframes own-spin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

.own-office-card {
	border-radius: 18px;
	cursor: pointer;
	padding: 18px;
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
	max-height: 320px;
}

.own-office-card:hover,
.own-office-card.is-active {
	border-color: var(--own-primary);
	box-shadow: 0 12px 28px rgba(59, 132, 95, 0.12);
	transform: translateY(-1px);
}

.own-office-card-top,
.own-office-card-bottom {
	align-items: flex-start;
	display: flex;
	gap: 12px;
	justify-content: space-between;
}

.own-office-card h3 {
	font-size: 18px;
	line-height: 1.35;
	margin: 0 0 8px;
}

.own-office-card-bottom {
	align-items: center;
	justify-content: flex-end;
	margin-top: 14px;
}

.own-office-distance {
	color: var(--own-muted);
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}

.own-naver-marker {
	align-items: center;
	background: #be4c1f;
	border: 4px solid rgba(79, 114, 87, 0.2);
	border-radius: 50%;
	box-shadow: 0 10px 24px rgba(79, 114, 87, 0.28);
	display: inline-flex;
	height: 44px;
	justify-content: center;
	position: relative;
	width: 44px;
}

.own-naver-marker::after {
	background: #be4c1f;
	bottom: -7px;
	content: "";
	height: 16px;
	left: 14px;
	position: absolute;
	transform: rotate(45deg);
	width: 16px;
	z-index: -1;
}

.own-naver-marker span {
	color: #fff;
	font-family: 'Noto Sans KR', serif;
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
}

.own-current-location-marker {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #2563eb;
	border: 4px solid rgba(37, 99, 235, 0.22);
	box-shadow: 0 6px 18px rgba(37, 99, 235, 0.28);
}

.own-map-popup {
	color: var(--own-ink);
	min-width: 220px;
	max-width: min(280px, calc(100vw - 48px));
	background: var(--own-surface);
	border: 1px solid var(--own-primary);
	box-shadow: 0 12px 28px rgba(59, 132, 95, 0.12);
	transform: translateY(-1px);
	border-radius: 18px;
	padding: 18px;
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.own-map-popup strong {
	display: block;
	font-size: 15px;
	margin-bottom: 6px;
}

.own-map-popup p {
	color: var(--own-muted);
	font-size: 13px;
	line-height: 1.5;
	margin: 0 0 8px;
}

.own-map-popup a {
	color: var(--own-primary-dark);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}

@media (max-width: 1480px) {
	.own-office-toolbar {
		grid-template-columns: repeat(4, minmax(140px, 1fr)) minmax(140px, auto);
	}
}

@media (max-width: 1180px) {
	.own-office-toolbar {
		grid-template-columns: repeat(3, minmax(160px, 1fr));
	}

	.own-office-shell {
		grid-template-columns: 1fr;
	}

	.own-office-rail {
		border-right: 1px solid var(--own-line);
		border-bottom: 0;
	}

	.own-office-rail,
	.own-office-list {
		max-height: none;
	}

	.own-office-map-stage,
	.own-office-map {
		min-height: 560px;
	}
}

@media (max-width: 920px) {
	.own-office-toolbar {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.own-office-map,
	.own-office-map-stage {
		min-height: 420px;
	}
}

@media (max-width: 640px) {
	.own-office-toolbar {
		grid-template-columns: 1fr;
		padding: 12px;
	}

	.own-office-view-field {
		display: grid;
		position: sticky;
		top: 0;
		z-index: 35;
	}

	.own-office-shell {
		gap: 14px;
		position: relative;
	}

	.own-office-rail,
	.own-office-map-stage {
		border: 1px solid var(--own-line);
	}

	.own-map-search-layer {
		left: 12px;
		right: 12px;
		top: 12px;
	}

	.own-map-search-box {
		width: 100%;
	}

	.own-office-card-bottom {
		align-items: flex-start;
		flex-direction: column;
		justify-content: flex-start;
	}

	.own-offices-app[data-view-mode="list"] .own-office-map-stage {
		display: none;
	}

	.own-offices-app[data-view-mode="list"] .own-office-rail {
		display: grid;
		min-height: 420px;
	}

	.own-offices-app[data-view-mode="map"] .own-office-rail {
		display: none;
	}

	.own-map-popup {
		border-radius: 12px;
		max-width: calc(100vw - 56px);
		min-width: 0;
		padding: 12px;
		width: 232px;
	}

	.own-map-popup p {
		font-size: 12px;
		line-height: 1.45;
	}

	.own-map-popup-summary {
		display: none;
	}
}

/* 페이지별 예외 */
.page-id-46 .elementor-element-a8a2fe0.e-con {
	height: calc(100vh - var(--own-header-height, 80px)) !important;
	height: calc(100dvh - var(--own-header-height, 80px)) !important;
}
