/* CSL Core — styles for plugin blocks. Uses theme.json presets with fallbacks,
   so it looks right in the Cloud theme and sensible in any other theme. */

.csl-block { --csl-ink: var(--wp--preset--color--ink, #0A1A2B); --csl-navy: var(--wp--preset--color--navy, #102A43); --csl-accent: var(--wp--preset--color--sky, #6CAED5); --csl-cloud: var(--wp--preset--color--mist, #F5F8FB); --csl-line: var(--wp--preset--color--line, #E3E9EF); --csl-muted: var(--wp--preset--color--muted, #5E6B78); --csl-gold: var(--wp--preset--color--sky, #6CAED5); }
.csl-muted { color: var(--csl-muted, #566578); }
.csl-small { font-size: .85em; }
.csl-editor-empty { padding: 14px 16px; border: 1px dashed #b8c4d0; border-radius: 8px; color: #566578; font-size: 13px; background: #f7fafc; }
.csl-block-title { font-size: var(--wp--preset--font-size--x-large, 1.6rem); margin: 0 0 1rem; }

/* Brand */
.csl-brand { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none !important; color: var(--csl-navy); line-height: 1; }
.csl-brand--light { color: #fff; }
.csl-brand__mark { width: 44px; height: 44px; flex: none; color: var(--csl-accent); }
.csl-brand--light .csl-brand__mark { color: var(--csl-gold); }
.csl-brand__text { display: flex; flex-direction: column; gap: .28rem; }
.csl-brand__name { font-family: var(--wp--preset--font-family--heading, Georgia, serif); font-size: 1.55rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.csl-brand__sub { font-size: .66rem; font-weight: 700; letter-spacing: .26em; text-transform: uppercase; opacity: .78; }
.csl-brand__img { max-height: 56px; width: auto; display: block; }

/* Contact line */
.csl-contact { display: inline-flex; align-items: flex-start; gap: .5rem; }
.csl-contact svg { width: 1.15em; height: 1.15em; flex: none; margin-top: .22em; opacity: .85; }
.csl-contact a { color: inherit; text-decoration: none; }
.csl-contact a:hover { text-decoration: underline; }
.csl-contact address { font-style: normal; }

/* Socials */
.csl-socials { list-style: none; margin: 0; padding: 0; display: flex; gap: .5rem; flex-wrap: wrap; }
.csl-socials a { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(127,140,155,.45); color: inherit; opacity: .9; transition: all .2s; }
.csl-socials a:hover { opacity: 1; border-color: var(--csl-accent); color: var(--csl-accent); }
.csl-socials svg { width: 18px; height: 18px; }

/* Rating badge */
.csl-rating { display: inline-flex; align-items: center; gap: .65rem; padding: .5rem .95rem .5rem .5rem; border-radius: 999px; background: #fff; color: var(--csl-ink); border: 1px solid var(--csl-line); text-decoration: none !important; font-size: .9rem; }
.csl-rating__g { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; color: #fff; background: conic-gradient(#4285F4 0 25%, #34A853 0 50%, #FBBC05 0 75%, #EA4335 0); font-family: Arial, sans-serif; }
.csl-stars { display: inline-flex; color: #F5B301; }
.csl-stars svg { width: 16px; height: 16px; fill: currentColor; stroke: none; }
.csl-rating__text strong { font-weight: 800; }
.csl-reviews-widget { margin-top: 1.5rem; }

/* Compliance */
.csl-compliance { font-size: .8rem; opacity: .75; margin: .35rem 0; }

/* Map */
.csl-map iframe { width: 100%; min-height: 340px; border: 0; border-radius: 10px; display: block; filter: grayscale(.6) contrast(1.02); }
.csl-video iframe { width: 100%; aspect-ratio: 16/9; height: auto; border-radius: 14px; }

/* Location line */
.csl-location { display: flex; gap: .4rem; align-items: flex-start; color: var(--csl-muted); font-size: .95rem; margin: 0; }
.csl-location svg { width: 18px; height: 18px; flex: none; margin-top: .15em; }

/* ---------- Search ---------- */
.csl-search { background: #fff; border-radius: 12px; padding: clamp(1rem, 2.5vw, 1.6rem); box-shadow: 0 1px 0 var(--csl-line), 0 24px 60px rgba(16,42,67,.10); border: 1px solid var(--csl-line); color: var(--csl-ink); }
.csl-search__tabs { display: inline-flex; gap: 1.5rem; margin-bottom: 1.1rem; border-bottom: 1px solid var(--csl-line); }
.csl-search__tabs label { cursor: pointer; }
.csl-search__tabs input { position: absolute; opacity: 0; pointer-events: none; }
.csl-search__tabs span { display: block; padding: .3rem 0 .7rem; font-family: var(--wp--preset--font-family--heading, inherit); font-weight: 500; font-size: .95rem; color: var(--csl-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; transition: all .2s; }
.csl-search__tabs input:checked + span { color: var(--csl-navy); border-bottom-color: var(--csl-accent); }
.csl-search__tabs input:focus-visible + span { outline: 2px solid var(--csl-accent); outline-offset: 2px; }
.csl-search__fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .75rem; align-items: end; }
.csl-search--compact .csl-search__fields { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.csl-search__field label { display: block; font-size: .7rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--csl-muted); margin-bottom: .35rem; }
.csl-search select, .csl-form input:not([type=checkbox]):not([type=radio]), .csl-form select, .csl-form textarea {
	width: 100%; font: inherit; font-size: 1rem; color: var(--csl-ink); background: #fff;
	border: 1px solid var(--csl-line); border-radius: 6px; padding: .75rem .9rem; transition: border-color .2s, box-shadow .2s; box-sizing: border-box;
}
.csl-search select, .csl-form select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23566578' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .7rem center; background-size: 16px; padding-right: 2.2rem; }
.csl-search select:focus, .csl-form input:focus, .csl-form select:focus, .csl-form textarea:focus { outline: none; border-color: var(--csl-accent); box-shadow: 0 0 0 3px rgba(108,174,213,.25); }
.csl-search__submit .wp-block-button__link, .csl-form-actions .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; width: 100%; border: 0; cursor: pointer; min-height: 48px; font-family: var(--wp--preset--font-family--heading, inherit); font-size: .95rem; font-weight: 500; }
.csl-search__submit svg { width: 18px; height: 18px; }
.csl-search__check { display: inline-flex; gap: .5rem; align-items: center; margin-top: .85rem; font-size: .9rem; color: var(--csl-muted); cursor: pointer; }
.csl-listing-heading { margin: 0; }
.csl-listing-count { margin: .5rem 0 0; opacity: .8; }

/* ---------- Forms ---------- */
.csl-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1rem; }
.csl-field { grid-column: 1 / -1; }
.csl-field--half { grid-column: span 1; }
@media (max-width: 560px) { .csl-field--half { grid-column: 1 / -1; } .csl-form-grid { grid-template-columns: 1fr; } }
.csl-field > label, .csl-field legend { display: block; font-weight: 500; font-size: .9rem; margin-bottom: .4rem; color: var(--csl-ink); }
.csl-field fieldset { border: 0; padding: 0; margin: 0; }
.csl-req { color: #B42318; }
.csl-field.has-error input, .csl-field.has-error select, .csl-field.has-error textarea { border-color: #B42318; }
.csl-segmented { display: flex; flex-wrap: wrap; gap: .5rem; }
.csl-segmented label { cursor: pointer; }
.csl-segmented input { position: absolute; opacity: 0; }
.csl-segmented span { display: block; padding: .6rem 1.1rem; border-radius: 6px; border: 1px solid var(--csl-line); font-weight: 500; font-size: .92rem; transition: all .2s; }
.csl-segmented input:checked + span { background: var(--csl-navy); border-color: var(--csl-navy); color: #fff; }
.csl-segmented input:focus-visible + span { outline: 2px solid var(--csl-accent); outline-offset: 2px; }
.csl-consent { margin: 1.1rem 0 0; font-size: .88rem; color: var(--csl-muted); }
.csl-consent label { display: flex; gap: .6rem; align-items: flex-start; cursor: pointer; }
.csl-consent input { margin-top: .2rem; width: 18px; height: 18px; accent-color: var(--csl-navy); flex: none; }
.csl-consent.has-error { color: #B42318; }
.csl-form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-top: 1.25rem; }
.csl-form-actions .wp-block-button__link { width: auto; padding-left: 2rem; padding-right: 2rem; }
.csl-form-note { font-size: .85rem; color: var(--csl-muted); }
.csl-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.csl-form-errors { background: #FEF3F2; border: 1px solid #FECDCA; color: #7A271A; border-radius: 12px; padding: 1rem 1.25rem; margin-bottom: 1.25rem; }
.csl-form-errors ul { margin: .4rem 0 0 1.1rem; padding: 0; }
.csl-form-success { display: flex; gap: .9rem; align-items: flex-start; background: #ECFDF3; border: 1px solid #ABEFC6; color: #054F31; border-radius: 14px; padding: 1.25rem 1.4rem; }
.csl-form-success svg { width: 28px; height: 28px; flex: none; color: #079455; }
.csl-form-success a { color: inherit; font-weight: 700; }
.csl-form-context { display: flex; gap: .5rem; align-items: center; background: var(--csl-cloud); border-radius: 6px; padding: .7rem .9rem; font-weight: 500; margin: 0 0 1rem; }
.csl-form-context svg { width: 20px; height: 20px; color: var(--csl-accent); }

/* Dark-background contexts */
.has-navy-background-color .csl-field > label, .has-navy-background-color .csl-field legend,
.has-ink-background-color .csl-field > label, .is-style-card-dark .csl-field > label { color: #fff; }
.has-navy-background-color .csl-consent, .has-navy-background-color .csl-form-note { color: rgba(255,255,255,.75); }
