/* ============================================================
   base.css — reset, CSS variables, rubber layout helpers
   Desktop base: 1440px  |  Mobile base: 370px (max-width 767px)
   Rubber formula: calc(VALUE / var(--vw-base) * 100vw)
   ============================================================ */

/* ---------- CSS custom properties ---------- */
:root {
  --vw-base: 1440;

  /* Brand palette */
  --color-red:        #ea3323;
  --color-red-light:  rgba(229, 35, 25, 0.05);
  --color-dark:       rgb(14, 13, 13);
  --color-text:       rgb(71, 71, 71);
  --color-bg:         rgb(244, 242, 242);
  --color-white:      #ffffff;
  --color-green:      rgb(86, 182, 29);
  --color-star:       rgb(255, 204, 2);

  /* Spacing base (desktop content: 1240px inside 1440) */
  --content-padding-x: calc(100 / var(--vw-base) * 100vw);
}

@media (max-width: 767px) {
  :root {
    --vw-base: 370;
    /* Mobile content: 340px inside 370, so 15px each side */
    --content-padding-x: calc(15 / var(--vw-base) * 100vw);
  }
}

/* ---------- Reset ---------- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-family: 'Inter', sans-serif;
  color: var(--color-text);
  background-color: var(--color-white);
  -webkit-text-size-adjust: 100%;
}

body {
  min-width: 320px;
  overflow-x: hidden;
}

img,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  text-decoration: none;
  color: inherit;
  transition: color 0.25s ease-out;
}

a:not([class]):hover {
  color: var(--color-red);
}

button {
  cursor: pointer;
  border: none;
  background: none;
  font-family: inherit;
}

ul,
ol {
  list-style: none;
}

blockquote {
	margin: 1.1em 0;
	padding: calc(20 / var(--vw-base) * 100vw);
	border-radius: calc(15 / var(--vw-base) * 100vw);
	border-left: 3px solid var(--color-red);
	background-color: var(--color-red-light);
	overflow: auto;
}

blockquote:last-child, blockquote>*:last-child {
	margin-bottom: 0;
}

blockquote:first-child, blockquote>*:first-child {
	margin-top: 0;
}

blockquote ul, blockquote ol {
	margin: 1.1em 0;
	padding-left: calc(20 / var(--vw-base) * 100vw);
}

blockquote ul {
	list-style: disc;
}

blockquote ul li::marker {
	color: var(--color-red);
}

blockquote ol {
	list-style: decimal;
}

/* ---------- Utility: content container ---------- */
.container {
  width: 100%;
  padding-left: var(--content-padding-x);
  padding-right: var(--content-padding-x);
}

.wpcf7-spinner {
	display: none !important;
}

.wpcf7-form-control-wrap {
	position: relative;
}

.wpcf7-not-valid {
	box-shadow: inset 0 0 0 1px var(--color-red) !important;
}

form .wpcf7-not-valid-tip {
	position: absolute;
	left: calc(20 / var(--vw-base) * 100vw);
	bottom: calc(3 / var(--vw-base) * 100vw);
	font-size: calc(10 / var(--vw-base) * 100vw) !important;
	font-weight: 500;
	line-height: 1;
	color: var(--color-red) !important;
}

body .wpcf7 form .wpcf7-response-output {
	padding: 0.2em 0.5em;
	font-size: 0.9em;
	text-align: center;
}

@media (max-width: 767px) {
  	blockquote {
    	padding: calc(15 / var(--vw-base) * 100vw) calc(10 / var(--vw-base) * 100vw);
    }

    blockquote ul, blockquote ol {
    	padding-left: calc(15 / var(--vw-base) * 100vw);
    }
}

/* ---------- CF7: acceptance / checkbox ---------- */
.wpcf7-form .wpcf7-list-item {
	margin-left: 0;
}

.wpcf7-form .wpcf7-list-item label {
	display: flex;
	align-items: flex-start;
}

.wpcf7-form .wpcf7-acceptance {
	display: block;
}

.wpcf7-form .wpcf7-acceptance .wpcf7-list-item-label {
	margin-left: calc(8 / var(--vw-base) * 100vw);
	cursor: pointer;
	font-size: calc(12 / var(--vw-base) * 100vw);
	line-height: 1.2;
	color: var(--color-text);
}

.wpcf7-form .wpcf7-acceptance .wpcf7-list-item-label::before,
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item-label::after {
	display: none;
}

.wpcf7-form .wpcf7-acceptance input[type="checkbox"] {
	appearance: none;
	flex-shrink: 0;
	width: calc(16 / var(--vw-base) * 100vw);
	height: calc(16 / var(--vw-base) * 100vw);
	border: calc(1.5 / var(--vw-base) * 100vw) solid var(--color-text);
	border-radius: calc(5 / var(--vw-base) * 100vw);
	background: none;
	cursor: pointer;
}

.wpcf7-form .wpcf7-acceptance input[type="checkbox"]:checked {
	background: url("data:image/svg+xml,%3Csvg viewBox='0 0 12 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 5L4.5 8.5L11 1.5' stroke='%2356b61d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / 60%;
}

.wpcf7-form .wpcf7-acceptance.wpcf7-not-valid input[type="checkbox"] {
	border-color: var(--color-red) !important;
}

.wpcf7-form .wpcf7-acceptance.wpcf7-not-valid .wpcf7-list-item-label {
	color: var(--color-red) !important;
}

.wpcf7-form .wpcf7-acceptance.wpcf7-not-valid a {
	color: var(--color-red) !important;
}

.wpcf7-form .wpcf7-acceptance a {
	font-weight: 600;
	color: inherit;
	text-decoration: underline;
}

.wpcf7-form .wpcf7-acceptance a:hover {
	color: var(--color-red) !important;
}