/*
 * Cani in Casa design system.
 * Final compatibility layer for current and legacy public components.
 */

:root {
	--cic-primary: var(--cicr-green, #137548);
	--cic-primary-dark: var(--cicr-green-dark, #0b5835);
	--cic-accent: var(--cicr-accent, #c2410c);
	--cic-accent-hover: #9f350a;
	--cic-ink: #1b1a1d;
	--cic-text: #26332b;
	--cic-muted: #667169;
	--cic-bg: #f7f9f7;
	--cic-surface: #ffffff;
	--cic-surface-soft: #eef5ef;
	--cic-border: #d9e2dc;
	--cic-error: #b42318;
	--cic-warning: #a15c07;
	--cic-font: var(--cicr-body-font, "Nunito Sans", sans-serif);
	--cic-font-heading: var(--cicr-heading-font, "Nunito Sans", sans-serif);
	--cic-space-1: 4px;
	--cic-space-2: 8px;
	--cic-space-3: 12px;
	--cic-space-4: 16px;
	--cic-space-6: 24px;
	--cic-space-8: 32px;
	--cic-space-12: 48px;
	--cic-space-16: 64px;
	--cic-radius-sm: 4px;
	--cic-radius-md: 6px;
	--cic-radius-lg: 8px;
	--cic-shadow-sm: 0 6px 18px rgba(27, 26, 29, .07);
	--cic-shadow-md: 0 14px 40px rgba(27, 26, 29, .10);
	--cic-focus: 0 0 0 3px rgba(19, 117, 72, .24);
}

html {
	background: var(--cic-bg);
}

html body {
	background-color: var(--cic-bg);
	color: var(--cic-text);
	font-family: var(--cic-font) !important;
	font-size: var(--cicr-body-size, 16px);
	font-weight: var(--cicr-body-weight, 600);
	letter-spacing: 0;
}

html body :where(h1, h2, h3, h4, h5, h6),
html body :where(button, input, select, textarea, label, legend) {
	font-family: var(--cic-font-heading) !important;
	letter-spacing: 0 !important;
}

html body :where(p, li, dd, dt, address, blockquote, figcaption, small) {
	font-family: var(--cic-font) !important;
	letter-spacing: 0;
}

html body :where(h1, h2, h3, h4, h5, h6) {
	color: var(--cic-ink);
}

html body a {
	text-underline-offset: 3px;
}

html body a:not([class]):hover {
	color: var(--cic-primary-dark);
}

@media (min-width: 761px) {
	.cicr-inner-hero .cicr-shell {
		position: static;
	}
}

html body :where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 2px solid var(--cic-primary-dark) !important;
	outline-offset: 2px;
	box-shadow: var(--cic-focus);
}

html body .cicr-page :where(a, button, input, select, textarea, [tabindex]):focus-visible,
html body .cicr-header :where(a, button, [tabindex]):focus-visible,
html body .cicr-footer :where(a, button, [tabindex]):focus-visible {
	outline: 2px solid #0b5835 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 3px rgba(19, 117, 72, .24) !important;
}

/* Buttons */
:where(
	.btn,
	.button,
	.cicr-btn,
	.cicr-button,
	.wp-block-button__link,
	.btn-calculate,
	.btn-send-message,
	.btn-cta-primary,
	.btn-auth-primary,
	.btn-auth-secondary,
	.story-submission-form .btn-submit,
	.contact-form .btn,
	button[type="submit"]
) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--cic-space-2);
	height: 44px !important;
	min-height: 44px !important;
	padding: 10px 18px;
	border: 1px solid transparent !important;
	border-radius: var(--cic-radius-lg) !important;
	font-family: var(--cic-font) !important;
	font-size: 15px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0 !important;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}

html body[class] .cicr-page :where(
	.btn,
	.button,
	.cicr-btn,
	.cicr-button,
	.wp-block-button__link,
	.btn-calculate,
	.btn-send-message,
	.btn-cta-primary,
	.btn-auth-primary,
	.btn-auth-secondary,
	button[type="submit"]
) {
	font-family: var(--cic-font) !important;
}

:where(
	.btn-primary,
	.btn-success,
	.cicr-btn:not(.cicr-btn--light),
	.cicr-button--primary,
	.btn-calculate,
	.btn-send-message,
	.btn-cta-primary,
	.btn-auth-primary,
	.story-submission-form .btn-submit,
	.contact-form .btn,
	button[type="submit"]
) {
	background: var(--cic-primary) !important;
	border-color: var(--cic-primary) !important;
	box-shadow: none !important;
	color: #fff !important;
}

html body[class] .cicr-page :where(
	.btn-primary,
	.btn-success,
	.cicr-btn:not(.cicr-btn--light),
	.cicr-button--primary,
	.btn-calculate,
	.btn-send-message,
	.btn-cta-primary,
	.btn-auth-primary,
	.story-submission-form .btn-submit,
	.contact-form .btn,
	button[type="submit"]
) {
	background: var(--cic-primary) !important;
	border-color: var(--cic-primary) !important;
	color: #fff !important;
}

:where(
	.btn-primary,
	.btn-success,
	.cicr-btn:not(.cicr-btn--light),
	.cicr-button--primary,
	.btn-calculate,
	.btn-send-message,
	.btn-cta-primary,
	.btn-auth-primary,
	.story-submission-form .btn-submit,
	.contact-form .btn,
	button[type="submit"]
):hover:not(:disabled) {
	background: var(--cic-primary-dark) !important;
	border-color: var(--cic-primary-dark) !important;
	color: #fff !important;
	transform: translateY(-1px);
}

html body[class] .cicr-page :where(
	.btn-primary,
	.btn-success,
	.cicr-btn:not(.cicr-btn--light),
	.cicr-button--primary,
	.btn-calculate,
	.btn-send-message,
	.btn-cta-primary,
	.btn-auth-primary,
	.story-submission-form .btn-submit,
	.contact-form .btn,
	button[type="submit"]
):hover:not(:disabled) {
	background: var(--cic-primary-dark) !important;
	border-color: var(--cic-primary-dark) !important;
}

:where(.btn-secondary, .btn-outline, .cicr-btn--light, .btn-back, .btn-auth-secondary) {
	background: var(--cic-surface) !important;
	border-color: var(--cic-border) !important;
	box-shadow: none !important;
	color: var(--cic-primary-dark) !important;
}

html body[class] .cicr-page :where(.btn-secondary, .btn-outline, .cicr-btn--light, .btn-back, .btn-auth-secondary) {
	background: var(--cic-surface) !important;
	border-color: var(--cic-border) !important;
	color: var(--cic-primary-dark) !important;
}

:where(.btn-secondary, .btn-outline, .cicr-btn--light, .btn-back, .btn-auth-secondary):hover:not(:disabled) {
	background: var(--cic-surface-soft) !important;
	border-color: var(--cic-primary) !important;
	color: var(--cic-primary-dark) !important;
}

:where(.btn-danger, .delete-button, .delete-action) {
	background: var(--cic-error) !important;
	border-color: var(--cic-error) !important;
	color: #fff !important;
}

:where(.btn-sm, .button-small) {
	height: 36px !important;
	min-height: 36px !important;
	padding: 7px 12px !important;
	font-size: 13px !important;
}

:where(.btn-lg, .btn-large, .button-large) {
	height: 52px !important;
	min-height: 52px !important;
	padding: 13px 22px !important;
	font-size: 16px !important;
}

:where(.btn, .button, .cicr-btn, .cicr-button, button)[disabled],
:where(.btn, .button, .cicr-btn, .cicr-button, button).disabled {
	opacity: .55;
	cursor: not-allowed;
	transform: none !important;
}

:where(.cicr-menu-toggle, .cicr-drawer__head button, .toggle-password, .clear-selection) {
	width: 44px;
	height: 44px !important;
	min-height: 44px !important;
	padding: 0;
	border: 1px solid var(--cic-border) !important;
	border-radius: var(--cic-radius-lg) !important;
	background: var(--cic-surface) !important;
	color: var(--cic-ink) !important;
}

/* Forms */
html body :where(
	input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
	select,
	textarea
) {
	width: 100%;
	height: 44px;
	min-height: 44px;
	padding: 10px 12px;
	border: 1px solid var(--cic-border) !important;
	border-radius: var(--cic-radius-lg) !important;
	background: var(--cic-surface) !important;
	box-shadow: none !important;
	color: var(--cic-text) !important;
	font-family: var(--cic-font) !important;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
}

html body .cicr-page :where(
	input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
	select,
	textarea
) {
	height: 44px !important;
	min-height: 44px !important;
	border-color: var(--cic-border) !important;
	background: var(--cic-surface) !important;
	color: var(--cic-text) !important;
}

html body[class] :where(
	input[type="text"],
	input[type="email"],
	input[type="url"],
	input[type="tel"],
	input[type="number"],
	input[type="password"],
	input[type="search"],
	select,
	textarea,
	.form-control
) {
	border-color: var(--cic-border) !important;
	background: var(--cic-surface) !important;
	color: var(--cic-text) !important;
}

html body[class] input[type="text"],
html body[class] input[type="email"],
html body[class] input[type="url"],
html body[class] input[type="tel"],
html body[class] input[type="number"],
html body[class] input[type="password"],
html body[class] input[type="search"],
html body[class] select,
html body[class] textarea,
html body[class] .form-control {
	border-color: var(--cic-border) !important;
	background: var(--cic-surface) !important;
	color: var(--cic-text) !important;
}

html body .cicr-page textarea {
	height: auto !important;
	min-height: 120px !important;
}

html body textarea {
	height: auto !important;
	min-height: 120px !important;
	resize: vertical;
}

html body :where(input, select, textarea)::placeholder {
	color: #7a847e;
	opacity: 1;
}

html body :where(input, select, textarea):focus {
	border-color: var(--cic-primary) !important;
	box-shadow: var(--cic-focus) !important;
}

html body :where(input, select, textarea):disabled {
	background: var(--cic-surface-soft) !important;
	color: var(--cic-muted) !important;
	cursor: not-allowed;
}

html body :where(input, select, textarea)[aria-invalid="true"],
html body :where(input, select, textarea):user-invalid {
	border-color: var(--cic-error) !important;
}

html body :where(label, legend) {
	color: var(--cic-ink);
	font-size: 14px;
	font-weight: 800;
}

html body :where(.form-help, .field-help, .description, .form-group small, .field-description) {
	color: var(--cic-muted);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.45;
}

html body :where(.form-error, .field-error, .error-message, .wpcf7-not-valid-tip) {
	color: var(--cic-error) !important;
	font-size: 13px;
	font-weight: 800;
}

/* Header and navigation */
.cicr-header__inner {
	height: auto !important;
	min-height: max(68px, calc(var(--cicr-logo-image-height, 48px) + 20px)) !important;
	background: rgba(255, 255, 255, .97);
	border-color: var(--cic-border);
	box-shadow: var(--cic-shadow-sm);
}

.cicr-brand__custom-logo {
	width: var(--cicr-logo-image-width, 150px);
	height: var(--cicr-logo-image-height, 48px);
	max-width: min(var(--cicr-logo-image-width, 150px), 40vw);
	max-height: none;
	object-fit: contain;
}

.cicr-brand__text,
.cicr-nav__menu a,
.cicr-login,
.cicr-header-cta,
.cicr-drawer a {
	font-family: var(--cic-font) !important;
	letter-spacing: 0 !important;
}

.cicr-nav__menu > li > a {
	min-height: 68px;
	color: var(--cic-ink) !important;
	font-size: 14px;
	font-weight: 800;
}

.cicr-nav__menu > li > a:hover,
.cicr-nav__menu > .current-menu-item > a,
.cicr-nav__menu > .current-menu-ancestor > a {
	color: var(--cic-primary-dark) !important;
}

.cicr-nav__menu .sub-menu,
.cicr-drawer__panel {
	background: var(--cic-surface);
	border-color: var(--cic-border);
	border-radius: var(--cic-radius-lg);
	box-shadow: var(--cic-shadow-md);
}

.cicr-nav__menu .sub-menu a,
.cicr-drawer__menu a {
	border-radius: var(--cic-radius-md);
	color: var(--cic-text) !important;
	font-size: 14px;
	font-weight: 750;
}

.cicr-nav__menu .sub-menu a:hover,
.cicr-nav__menu .sub-menu a:focus,
.cicr-drawer__menu a:hover,
.cicr-drawer__menu a:focus {
	background: var(--cic-surface-soft);
	color: var(--cic-primary-dark) !important;
}

.cicr-login,
.cicr-header-cta {
	min-height: 40px;
	border-radius: var(--cic-radius-lg);
	font-size: 14px;
	font-weight: 800;
}

.cicr-login {
	background: var(--cic-surface);
	border-color: var(--cic-primary);
	color: var(--cic-primary-dark);
}

.cicr-header-cta {
	background: var(--cic-primary);
	box-shadow: none;
	color: #fff;
}

.cicr-header-cta:hover {
	background: var(--cic-primary-dark);
	color: #fff;
}

/* Footer */
.cicr-footer {
	margin-top: var(--cic-space-16);
	padding: var(--cic-space-12) 0 var(--cic-space-6);
	background: var(--cic-surface);
	border-color: var(--cic-border);
}

.cicr-footer__grid {
	gap: var(--cic-space-8);
}

.cicr-footer h2 {
	margin: 0 0 var(--cic-space-3);
	color: var(--cic-ink);
	font-family: var(--cic-font) !important;
	font-size: 13px;
	font-weight: 900;
	line-height: 1.3;
	text-transform: uppercase;
}

.cicr-footer p,
.cicr-footer a {
	color: var(--cic-muted);
	font-family: var(--cic-font) !important;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.55;
}

.cicr-footer a:hover,
.cicr-footer a:focus {
	color: var(--cic-primary-dark);
}

.cicr-footer__bottom {
	border-color: var(--cic-border);
}

/* Cards and framed tools */
:where(
	.cicr-card,
	.dog-card,
	.type-card,
	.quiz-option-card,
	.annuncio-card,
	.struttura-card,
	.blog-card,
	.dashboard-section,
	.auth-form-wrapper,
	.calculator-container,
	.quiz-container,
	.razze-selector,
	.comparison-wrapper,
	.cicr-single-content,
	.cicr-info-card,
	.cicr-service-box,
	.cicr-filter-box,
	.cicr-error-link
) {
	border: 1px solid var(--cic-border) !important;
	border-radius: var(--cic-radius-lg) !important;
	background: var(--cic-surface) !important;
	box-shadow: var(--cic-shadow-sm) !important;
}

:where(.cicr-card, .dog-card, .type-card, .quiz-option-card, .annuncio-card, .struttura-card, .blog-card) {
	transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

:where(.cicr-card, .dog-card, .type-card, .quiz-option-card, .annuncio-card, .struttura-card, .blog-card):hover {
	transform: translateY(-2px);
	border-color: rgba(19, 117, 72, .28) !important;
	box-shadow: var(--cic-shadow-md) !important;
}

:where(
	.cicr-sidebar > section,
	.claim-info-box,
	.claim-form,
	.form-section,
	.calculator-form,
	.dashboard-main-content,
	.no-dogs,
	.empty-state
) {
	border-color: var(--cic-border) !important;
	border-radius: var(--cic-radius-lg) !important;
}

/* Tabs, badges, notices and pagination */
:where(.cicr-tabs, .cicr-breed-tabs, .calculator-tabs, .comparison-tabs, .form-progress) {
	border-color: var(--cic-border) !important;
	border-radius: var(--cic-radius-lg) !important;
	background: var(--cic-surface) !important;
}

:where(.cicr-tabs button, .tab-btn, .cicr-breed-tabs a, .progress-step) {
	color: var(--cic-text) !important;
	font-family: var(--cic-font) !important;
	font-weight: 800;
}

:where(.cicr-tabs button, .tab-btn, .cicr-breed-tabs a):hover,
:where(.cicr-tabs button, .tab-btn, .cicr-breed-tabs a).active,
:where(.cicr-tabs button, .tab-btn, .cicr-breed-tabs a)[aria-current="page"] {
	background: var(--cic-surface-soft) !important;
	color: var(--cic-primary-dark) !important;
}

:where(.cicr-badge, .badge, .status-badge, .premium-badge) {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	padding: 4px 8px;
	border-radius: var(--cic-radius-md) !important;
	font-family: var(--cic-font) !important;
	font-size: 12px;
	font-weight: 850;
	line-height: 1;
}

:where(.notice, .alert, .form-messages, .auth-messages, .claim-message, .wpcf7-response-output) {
	padding: var(--cic-space-4) !important;
	border: 1px solid var(--cic-border) !important;
	border-radius: var(--cic-radius-lg) !important;
	background: var(--cic-surface-soft) !important;
	color: var(--cic-text) !important;
	font-family: var(--cic-font) !important;
}

:where(.notice-error, .alert-error, .auth-messages.error, .claim-message.error) {
	border-color: rgba(180, 35, 24, .28) !important;
	background: #fff3f2 !important;
	color: var(--cic-error) !important;
}

:where(.notice-success, .alert-success, .auth-messages.success, .claim-message.success) {
	border-color: rgba(19, 117, 72, .25) !important;
	background: var(--cic-surface-soft) !important;
	color: var(--cic-primary-dark) !important;
}

:where(.pagination, .nav-links, .page-links) a,
:where(.pagination, .nav-links, .page-links) span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
	border: 1px solid var(--cic-border);
	border-radius: var(--cic-radius-md);
	background: var(--cic-surface);
	color: var(--cic-text);
	font-family: var(--cic-font) !important;
	font-weight: 800;
	text-decoration: none;
}

:where(.pagination, .nav-links, .page-links) .current,
:where(.pagination, .nav-links, .page-links) a:hover {
	background: var(--cic-primary);
	border-color: var(--cic-primary);
	color: #fff;
}

/* Legacy adapters */
.home-v2-search-button,
.home-v2-newsletter-form button,
.type-card .btn,
.owner-box-actions .btn,
.form-actions .btn,
.results-actions .btn {
	border-radius: var(--cic-radius-lg) !important;
	font-family: var(--cic-font) !important;
	font-weight: 800 !important;
	letter-spacing: 0 !important;
}

.btn-preferiti {
	min-height: 44px;
	border: 1px solid var(--cic-border) !important;
	border-radius: var(--cic-radius-lg) !important;
	background: var(--cic-surface) !important;
	color: var(--cic-primary-dark) !important;
	font-family: var(--cic-font) !important;
	font-weight: 800;
}

.btn-preferiti:hover,
.btn-preferiti.active {
	border-color: var(--cic-primary) !important;
	background: var(--cic-surface-soft) !important;
}

.cicr-mobile-nav {
	min-height: 70px;
	background: rgba(255, 255, 255, .97);
	border-color: var(--cic-border);
	box-shadow: 0 -8px 24px rgba(27, 26, 29, .08);
}

.cicr-mobile-nav a,
.cicr-mobile-nav button {
	color: var(--cic-text);
	font-family: var(--cic-font) !important;
	font-weight: 800;
}

.cicr-mobile-nav__plus {
	background: var(--cic-primary) !important;
}

@media (max-width: 1024px) {
	.cicr-header__inner {
		height: auto !important;
		min-height: max(66px, calc(var(--cicr-logo-image-height, 48px) + 18px)) !important;
	}

	.cicr-brand__custom-logo {
		max-width: min(var(--cicr-logo-image-width, 150px), 62vw);
	}

	.cicr-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	html body {
		font-size: 16px;
	}

	.cicr-shell {
		padding-right: 16px;
		padding-left: 16px;
	}

	:where(.cicr-single-content, .auth-form-wrapper, .calculator-container, .quiz-container, .razze-selector, .comparison-wrapper) {
		padding: 16px !important;
	}

	.form-actions :where(.btn, .button, button) {
		flex: 0 0 44px !important;
	}

	.form-actions :where(.btn-lg, .btn-large, .button-large) {
		flex-basis: 52px !important;
	}

	.cicr-footer {
		padding-top: 32px;
	}

	.cicr-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px 16px;
	}

	.cicr-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 420px) {
	.cicr-footer__grid {
		grid-template-columns: 1fr;
	}

	.cicr-footer__brand {
		grid-column: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}
