/* About us (a1 c), Contact (c1 b), the policy pages and 404 (e1 b). Sizes measured off the mock-ups, 1536 px wide. Reviews, the contact band and the form
   fields come from ds.css. */

/* --- About: first screen ---------------------------------------------------------------------------------------------------------- */
.ds-ahero { background: #F3F5F8; padding: calc(28 * var(--u)) 0 calc(70 * var(--u)); }
.ds-ahero .ds-wrap { padding-left: calc(47 * var(--u)); padding-right: calc(46 * var(--u)); }
.ds-ahero .ds-crumbs { padding-left: calc(11 * var(--u)); font-size: var(--t-s); }
.ds-ahero .ds-crumbs a { color: #4B5563; text-decoration: none; }
.ds-ahero__card { display: grid; grid-template-columns: calc(735 * var(--u)) 1fr; margin-top: calc(18 * var(--u)); border-radius: 10px; overflow: hidden; background: var(--c-white);
	box-shadow: 0 1px 3px rgba(17, 24, 39, .06); }
.ds-ahero__ink { position: relative; min-height: calc(740 * var(--u)); padding: calc(72 * var(--u)) calc(56 * var(--u)) calc(250 * var(--u)); background: var(--c-ink); color: var(--c-white); }
.ds-ahero__ink .ds-eyebrow { color: var(--c-yellow); font-weight: 700; font-size: var(--t-eyebrow); letter-spacing: .09em; }
.ds-ahero h1 { margin-top: calc(14 * var(--u)); font: 700 var(--t-h1)/1.15 var(--f-head); color: var(--c-white); letter-spacing: -.015em; }
.ds-ahero__lead { margin-top: calc(28 * var(--u)); max-width: calc(560 * var(--u)); font-size: var(--t-lead); line-height: 1.38; color: #F3F4F6; }
.ds-ahero__ink .ds-btn { position: relative; z-index: 1; margin-top: calc(36 * var(--u)); min-height: max(50px, calc(60 * var(--u))); padding: 0 calc(32 * var(--u)); font-size: var(--t-l); }
.ds-ahero__lines { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: calc(270 * var(--u)); overflow: visible; }
.ds-ahero__dash { stroke-dasharray: 9 7; filter: none !important; }
.ds-ahero__story { padding: calc(86 * var(--u)) calc(46 * var(--u)) calc(60 * var(--u)) calc(62 * var(--u)); }
.ds-ahero__story > p { font-size: var(--t-lead); line-height: 1.55; color: #4B5563; }
.ds-ahero__facts { margin-top: calc(48 * var(--u)); }
.ds-ahero__facts li { position: relative; padding: calc(28 * var(--u)) 0 calc(28 * var(--u)) calc(37 * var(--u)); font-size: var(--t-l); line-height: 1.45; color: var(--c-ink); }
.ds-ahero__facts li + li { border-top: 1px solid #E5E7EB; }
.ds-ahero__facts li::before { content: ''; position: absolute; left: 0; top: calc(26 * var(--u)); bottom: calc(26 * var(--u)); width: 6px; border-radius: 1px; background: var(--c-yellow); }

/* --- About: mission and values ---------------------------------------------------------------------------------------------------- */
.ds-mission { padding: calc(30 * var(--u)) 0 calc(40 * var(--u)); }
.ds-mission .ds-wrap { padding-left: calc(58 * var(--u)); padding-right: calc(58 * var(--u)); }
.ds-mission__text { display: grid; grid-template-columns: calc(560 * var(--u)) 1fr; column-gap: calc(70 * var(--u)); align-items: start; }
.ds-mission__text .ds-h2 { grid-row: 1 / span 2; font-size: var(--t-h2); }
.ds-mission__lead { font: 600 var(--t-lead)/1.4 var(--f-head); color: var(--c-ink); }
.ds-mission__text p + p { margin-top: calc(18 * var(--u)); font-size: var(--t-l); line-height: 1.6; color: #4B5563; }
.ds-values { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(22 * var(--u)); margin-top: calc(56 * var(--u)); }
.ds-values li { padding: calc(26 * var(--u)) calc(24 * var(--u)) calc(28 * var(--u)); border-radius: 8px; background: #F3F5F8; }
.ds-values .ds-ic { width: calc(46 * var(--u)); height: calc(46 * var(--u)); min-width: 32px; min-height: 32px; color: var(--c-blue); }
.ds-values h3 { margin-top: calc(16 * var(--u)); font: 700 var(--t-h5)/1.25 var(--f-head); color: var(--c-ink); }
.ds-values p { margin-top: calc(8 * var(--u)); font-size: var(--t-m); line-height: 1.5; color: #4B5563; }
.ds-mission__svc { display: grid; grid-template-columns: repeat(5, 1fr); gap: calc(14 * var(--u)); margin-top: calc(26 * var(--u)); }
.ds-mission__svc a { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: max(52px, calc(64 * var(--u))); padding: 0 calc(14 * var(--u)) 0 calc(20 * var(--u));
	border: 1.5px solid var(--c-blue); border-radius: 6px; color: var(--c-blue); text-decoration: none; font: 500 var(--t-m)/1.25 var(--f-text); }
.ds-mission__svc a:hover { background: #F5F8FF; }

/* --- Contact: ink band with the four contacts ------------------------------------------------------------------------------------- */
.ds-chero { position: relative; overflow: hidden; background: var(--c-ink); color: var(--c-white); padding: calc(28 * var(--u)) 0 calc(20 * var(--u)); }
.ds-chero .ds-wrap { position: relative; padding-left: calc(62 * var(--u)); padding-right: calc(62 * var(--u)); }
.ds-chero__lines { position: absolute; right: 0; top: calc(6 * var(--u)); width: calc(440 * var(--u)); height: calc(160 * var(--u)); overflow: visible; opacity: .9; }
.ds-chero .ds-crumbs { font-size: var(--t-s); color: #E5E7EB; }
.ds-chero .ds-crumbs a { color: #E5E7EB; text-decoration: none; }
.ds-chero h1 { margin-top: calc(6 * var(--u)); font: 700 var(--t-h1)/1.15 var(--f-head); color: var(--c-white); letter-spacing: -.01em; }
.ds-chero__lead { margin-top: calc(10 * var(--u)); font-size: var(--t-lead); color: #E5E7EB; }
.ds-ccards { display: grid; grid-template-columns: 1.42fr .92fr 1.12fr 1.5fr; gap: calc(16 * var(--u)); margin-top: calc(26 * var(--u)); }
.ds-ccards li { display: flex; gap: calc(20 * var(--u)); padding: calc(18 * var(--u)) calc(14 * var(--u)) calc(16 * var(--u)) calc(22 * var(--u)); border: 1.5px solid rgba(203, 213, 225, .85); border-radius: 6px; }
.ds-ccards .ds-ic { flex: none; width: calc(42 * var(--u)); height: calc(42 * var(--u)); min-width: 30px; min-height: 30px; color: #3B82F6; }
.ds-ccards li.is-hours .ds-ic { color: var(--c-yellow); }
.ds-ccards h2 { font: 600 var(--t-m)/1.3 var(--f-text); color: var(--c-white); }
.ds-ccards p { margin-top: calc(4 * var(--u)); font-size: var(--t-s); line-height: 1.4; color: #E5E7EB; }
.ds-ccards a { color: inherit; text-decoration: none; }
.ds-ccards a:hover { color: var(--c-white); text-decoration: underline; }

/* --- Contact: the form with topic chips and the map ------------------------------------------------------------------------------- */
.ds-cform { padding: calc(34 * var(--u)) 0 calc(46 * var(--u)); }
.ds-cform__in { display: grid; grid-template-columns: calc(687 * var(--u)) 1fr; column-gap: calc(34 * var(--u)); padding-left: calc(62 * var(--u)); padding-right: calc(62 * var(--u)); align-items: start; }
.ds-cform__form .ds-field { font-size: var(--t-s); font-weight: 600; }
.ds-cform__form .ds-field input, .ds-cform__form .ds-field textarea { background: #F3F5F8; border-color: #D9DDE3; }
.ds-cform__form .ds-form__row { gap: calc(22 * var(--u)); }
.ds-topics { margin: 0; padding: 0; border: 0; display: grid; grid-template-columns: repeat(3, auto); gap: calc(10 * var(--u)); }
.ds-topics legend { margin-bottom: calc(10 * var(--u)); padding: 0; font: 600 var(--t-s)/1.3 var(--f-text); color: var(--c-ink); }
.ds-topics label { position: relative; }
.ds-topics input { position: absolute; opacity: 0; inset: 0; }
.ds-topics span { display: grid; place-items: center; min-height: max(44px, calc(48 * var(--u))); padding: 0 12px; border: 1px solid #9CA3AF; border-radius: 4px; background: var(--c-white); cursor: pointer;
	font: 500 var(--t-s)/1.2 var(--f-text); color: var(--c-ink); text-align: center; }
.ds-topics input:checked + span { border: 2px solid var(--c-blue); background: #EAF1FC; color: var(--c-blue); }
.ds-topics input:focus-visible + span { outline: 3px solid var(--c-blue-line); outline-offset: 2px; }
.ds-cform__form .ds-form__more { padding: 0 calc(18 * var(--u)); border-radius: 4px; background: #F3F5F8; }
.ds-cform__form .ds-form__more summary { color: var(--c-ink); width: 100%; min-height: max(48px, calc(50 * var(--u))); font-size: var(--t-s); }
.ds-cform__form .ds-form__send { justify-self: start; width: calc(286 * var(--u)); min-width: 200px; height: max(50px, calc(54 * var(--u))); font-size: var(--t-l); }
.ds-cform .ds-sent { border: 1px solid #E5E7EB; }
.ds-cmap { padding: calc(12 * var(--u)); border: 2.5px dashed var(--c-yellow); border-radius: 8px; }
.ds-cmap iframe { display: block; width: 100%; height: calc(460 * var(--u)); min-height: 300px; border: 0; border-radius: 4px; filter: saturate(.75); }

/* --- Contact: questions --------------------------------------------------------------------------------------------------------- */
.ds-faq { padding: calc(40 * var(--u)) 0 calc(90 * var(--u)); background: #F3F5F8; }
.ds-faq .ds-wrap { padding-left: calc(62 * var(--u)); padding-right: calc(62 * var(--u)); }
.ds-faq__list { display: grid; gap: 10px; margin-top: calc(24 * var(--u)); max-width: 980px; }
.ds-faq details { border-radius: 6px; background: var(--c-white); }
.ds-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; padding: 0 20px; cursor: pointer; list-style: none;
	font: 600 var(--t-l)/1.3 var(--f-head); color: var(--c-ink); }
.ds-faq summary::-webkit-details-marker { display: none; }
.ds-faq summary .ds-ic { flex: none; color: var(--c-blue); transition: transform .15s; }
.ds-faq details[open] summary .ds-ic { transform: rotate(45deg); }
.ds-faq details p { padding: 0 20px 20px; font-size: var(--t-m); line-height: 1.6; color: #4B5563; }

/* --- Privacy Policy and Terms (page-legal.php): the band of Contact; the reading column comes from blog.css --------------------- */
.ds-chero--legal { padding-bottom: calc(40 * var(--u)); }
.ds-chero--legal h1 { font-size: var(--t-h1); letter-spacing: -.02em; }
.ds-legal .ds-abody { padding-left: calc(62 * var(--u)); }   /* the text starts under the title */

/* --- My account (page-my-account.php): the sign-in form of WooCommerce in a white card ----------------------------------------- */
.ds-acct { background: #F3F5F8; }
.ds-acct .ds-wrap { padding-top: calc(18 * var(--u)); padding-bottom: calc(80 * var(--u)); }
.ds-acct .ds-crumbs { font-size: var(--t-s); color: #4B5563; }
.ds-acct .ds-crumbs a { color: #4B5563; text-decoration: none; }
.ds-acct__h { margin-top: calc(10 * var(--u)); font: 700 var(--t-h1)/1.15 var(--f-head); letter-spacing: -.01em; color: var(--c-ink); }
.ds-acct__card { max-width: 640px; margin-top: calc(24 * var(--u)); padding: calc(28 * var(--u)) calc(32 * var(--u)); border: 1px solid #E3E6EA; border-radius: 8px; background: var(--c-white); font-size: var(--t-m); }
.ds-acct__card h2 { font: 700 var(--t-h5)/1.3 var(--f-head); }
.ds-acct .ds-acct__card form.login { margin: 14px 0 0; padding: 0; border: 0; }   /* WooCommerce draws its own frame: one card is enough */
.ds-acct .ds-acct__card form .form-row .input-text { min-height: 46px; padding: 10px 14px; border: 1px solid #CBD2DA; border-radius: var(--radius); font: 400 16px/1.3 var(--f-text); }
.ds-acct .ds-acct__card button.button { min-height: 46px; padding: 0 28px; border: 0; border-radius: var(--radius); background: var(--c-yellow); color: var(--c-ink); font: 600 var(--t-l)/1 var(--f-text); cursor: pointer; }
.ds-acct .ds-acct__card button.button:hover { background: #F5B800; color: var(--c-ink); }

/* --- 404 (e1 b) ---------------------------------------------------------------------------------------------------------------- */
.ds-nf { background: var(--c-white); }
.ds-nf .ds-wrap { display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: calc(113 * var(--u)); padding-bottom: calc(104 * var(--u)); }
.ds-nf__art { display: block; width: calc(604 * var(--u)); min-width: 280px; height: auto; overflow: visible; }
.ds-nf__line { fill: none; stroke: var(--c-blue); stroke-width: 4.5; stroke-linecap: round; stroke-linejoin: round; }
.ds-nf__dot circle { fill: var(--c-white); stroke: var(--c-blue); stroke-width: 4.5; }
.ds-nf__spark { fill: none; stroke: var(--c-yellow); stroke-width: 4.5; stroke-linecap: round; animation: ds-spark 2.4s ease-in-out infinite; }
@keyframes ds-spark { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
@media (prefers-reduced-motion: reduce) { .ds-nf__spark { animation: none; } }
.ds-nf__h { margin-top: calc(18 * var(--u)); font: 700 var(--t-h1)/1.15 var(--f-head); color: var(--c-ink); letter-spacing: -.01em; }
.ds-nf__line-txt { margin-top: calc(13 * var(--u)); font-size: var(--t-lead); line-height: 1.4; color: var(--c-body); }
.ds-nf__search { position: relative; display: flex; gap: calc(10 * var(--u)); width: calc(1008 * var(--u)); margin-top: calc(33 * var(--u)); text-align: left; }
.ds-nf__field { position: relative; flex: 1; display: flex; align-items: center; height: calc(76 * var(--u)); min-height: 52px; border: 1px solid #D9DDE3; border-radius: 4px; background: #F4F5F7; }
.ds-nf__field:focus-within { border-color: var(--c-blue); }
.ds-nf__field .ds-ic { position: absolute; left: calc(25 * var(--u)); width: calc(36 * var(--u)); height: calc(36 * var(--u)); min-width: 24px; min-height: 24px; color: var(--c-blue); pointer-events: none; }
.ds-nf__field input { width: 100%; height: 100%; border: 0; background: transparent; padding: 0 20px 0 calc(88 * var(--u) + 8px); font: 400 max(17px, calc(22 * var(--u)))/1.2 var(--f-text); color: var(--c-ink); text-overflow: ellipsis; }
.ds-nf__field input::placeholder { color: var(--c-muted); }
.ds-nf__field input:focus { outline: none; }
.ds-nf__go { flex: none; display: grid; place-items: center; width: calc(79 * var(--u)); min-width: 52px; border: 0; border-radius: 4px; background: var(--c-yellow); color: var(--c-ink); cursor: pointer; }
.ds-nf__go:hover { background: #F5B800; }
.ds-nf__go .ds-ic { width: calc(36 * var(--u)); height: calc(36 * var(--u)); min-width: 24px; min-height: 24px; }
.ds-nf__cats { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(15 * var(--u)); margin-top: calc(26 * var(--u)); }
.ds-nf__cats a { display: flex; align-items: center; gap: calc(20 * var(--u)); height: calc(68 * var(--u)); min-height: 50px; padding: 0 calc(27 * var(--u)); border: 1px solid #CBD2DA; border-radius: 4px;
	background: var(--c-white); color: var(--c-blue); font: 400 var(--t-s)/1.2 var(--f-text); text-decoration: none; white-space: nowrap; }
.ds-nf__cats a:hover { border-color: var(--c-blue); background: #F5F8FD; }
.ds-nf__cats .ds-ic { flex: none; width: calc(40 * var(--u)); height: calc(40 * var(--u)); min-width: 26px; min-height: 26px; }
.ds-nf__btn { margin-top: calc(43 * var(--u)); min-width: calc(323 * var(--u)); min-height: max(50px, calc(61 * var(--u))); color: var(--c-ink); }
.ds-nf__btn:hover { background: #F5F8FD; }

/* --- narrow screens and phones -------------------------------------------------------------------------------------------------- */
@media (max-width: 1180px) {
	.ds-ccards { grid-template-columns: 1fr 1fr; }
	.ds-values { grid-template-columns: 1fr 1fr; }
	.ds-mission__svc { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 960px) {
	.ds-ahero .ds-wrap, .ds-mission .ds-wrap, .ds-chero .ds-wrap, .ds-cform__in, .ds-faq .ds-wrap { padding-left: var(--gutter); padding-right: var(--gutter); }
	.ds-ahero { padding: 16px 0 30px; }
	.ds-ahero__card { grid-template-columns: 1fr; }
	.ds-ahero__ink { min-height: 0; padding: 30px 22px 130px; }

	.ds-ahero__lead { max-width: none; }
	.ds-ahero__lines { height: 110px; }
	.ds-ahero__story { padding: 26px 22px 10px; }

	.ds-ahero__facts { margin-top: 18px; }
	.ds-ahero__facts li { padding: 16px 0 16px 22px; }
	.ds-ahero__facts li::before { top: 16px; bottom: 16px; width: 5px; }
	.ds-mission__text { grid-template-columns: 1fr; }
	.ds-mission__text .ds-h2 { grid-row: auto; margin-bottom: 14px; }

	.ds-values { margin-top: 26px; }
	.ds-chero { padding: 20px 0 22px; }
	.ds-chero__lines { display: none; }
	.ds-ccards { gap: 10px; }
	.ds-cform { padding: 26px 0 34px; }
	.ds-cform__in { grid-template-columns: 1fr; row-gap: 26px; }
	.ds-topics { grid-template-columns: 1fr 1fr; }
	.ds-cform__form .ds-form__send { width: 100%; }
	.ds-nf .ds-wrap { padding: 40px var(--gutter) 56px; }
	.ds-nf__art { width: min(100%, 420px); }
	.ds-nf__h { margin-top: 18px; }
	.ds-nf__line-txt { margin-top: 10px; }
	.ds-nf__search { width: 100%; margin-top: 24px; gap: 8px; }
	.ds-nf__field input { padding-left: 50px; font-size: 16px; }
	.ds-nf__field .ds-ic { left: 16px; }
	.ds-nf__cats { margin-top: 18px; gap: 10px; }
	.ds-nf__cats a { padding: 0 18px; gap: 12px; }
	.ds-nf__btn { margin-top: 28px; }
}
@media (max-width: 560px) {
	.ds-nf__cats { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
	.ds-nf__cats li:last-child { grid-column: 1 / -1; }
	.ds-nf__cats a { padding: 0 14px; white-space: normal; text-align: left; }
	.ds-nf__btn { width: 100%; }
	.ds-ccards, .ds-values, .ds-mission__svc { grid-template-columns: 1fr; }
	.ds-ccards li { padding: 14px 16px; gap: 16px; }
}
