@font-face {
    font-family: 'DM Sans';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('fonts/dm-sans-latin.woff2') format('woff2');
}

@font-face {
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 600 800;
    font-display: swap;
    src: url('fonts/plus-jakarta-sans-latin.woff2') format('woff2');
}

.bcgo-body {
    --bcgo-navy: #11214d;
    --bcgo-blue: #1976d8;
    --bcgo-muted: #5e6884;
    --bcgo-border: #8490a5;
    --bcgo-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%233a4c70' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    margin: 0;
    min-width: 320px;
    min-height: 100vh;
    color: var(--bcgo-navy);
    background: #e1f2ff url('dental-offer-background.webp') center center / cover no-repeat fixed;
    font-family: 'DM Sans', Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}

.bcgo-body *,
.bcgo-body *::before,
.bcgo-body *::after {
    box-sizing: border-box;
}

.bcgo-shell {
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 64px 24px;
}

.bcgo-card {
    width: min(100%, 844px);
    padding: 40px 47px 49px;
    border: 1px solid rgba(255, 255, 255, .94);
    border-radius: 40px;
    background: linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(246, 249, 255, .95));
    box-shadow: 0 24px 60px rgba(31, 80, 132, .22), 0 4px 18px rgba(50, 100, 158, .04);
}

.bcgo-heading {
    margin: 0 0 33px;
    text-align: center;
}

.bcgo-heading h1 {
    margin: 0;
    color: var(--bcgo-navy);
    font-family: 'Plus Jakarta Sans', Arial, sans-serif;
    font-size: clamp(40px, 5.1vw, 68px);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -.055em;
}

.bcgo-location {
    display: block;
    margin: 0 0 16px;
    color: #276bb2;
    font-family: 'DM Sans', Arial, sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .08em;
}

.bcgo-title-line,
.bcgo-title-offer {
    display: block;
}

.bcgo-title-offer {
    margin-top: 3px;
    color: var(--bcgo-blue);
}

.bcgo-divider {
    width: 98px;
    height: 6px;
    margin: 23px auto 20px;
    border-radius: 10px;
    background: #a6d6ff;
}

.bcgo-description {
    max-width: 600px;
    margin: 0 auto;
    color: var(--bcgo-muted);
    font-size: 23px;
    font-weight: 400;
    line-height: 1.45;
}

.bcgo-form .wpcf7,
.bcgo-form .wpcf7-form,
.bcgo-fields p {
    margin: 0;
}

.bcgo-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px 22px;
}

/* CF7 may insert paragraph and line-break wrappers when formatting a form. */
.bcgo-fields br {
    display: none;
}

.bcgo-field {
    min-width: 0;
}

.bcgo-full {
    grid-column: 1 / -1;
}

.bcgo-field label {
    display: block;
    margin: 0 0 8px;
    color: var(--bcgo-navy);
    font-size: 19px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -.02em;
}

.bcgo-optional {
    font-weight: 600;
}

.bcgo-field .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

.bcgo-field input:not([type='checkbox']),
.bcgo-field select,
.bcgo-field textarea {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 60px;
    margin: 0;
    padding: 15px 16px 15px 61px;
    border: 1px solid var(--bcgo-border);
    border-radius: 13px;
    color: var(--bcgo-navy);
    background-color: rgba(255, 255, 255, .5);
    background-image: var(--bcgo-field-icon, none);
    background-repeat: no-repeat;
    background-position: 20px 18px;
    background-size: 24px 24px;
    box-shadow: 0 1px 2px rgba(30, 50, 90, .025) inset;
    font: 400 18px / 1.5 'DM Sans', Arial, sans-serif;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

#bcgo-name {
    --bcgo-field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236d7895' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3Cpath d='M4 21v-2a8 5 0 0 1 16 0v2H4Z'/%3E%3C/svg%3E");
}

#bcgo-phone {
    --bcgo-field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236d7895' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7.1 3.6 2 3.3a1.7 1.7 0 0 1-.3 2.1L7.3 10.5a14.7 14.7 0 0 0 6.2 6.2l1.5-1.5a1.7 1.7 0 0 1 2.1-.3l3.3 2a1.7 1.7 0 0 1 .7 2 4.3 4.3 0 0 1-4.8 2.7A21.6 21.6 0 0 1 2.4 7.7a4.3 4.3 0 0 1 2.7-4.8 1.7 1.7 0 0 1 2 .7Z'/%3E%3C/svg%3E");
}

#bcgo-service {
    --bcgo-field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236d7895' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4C9 1.8 5 2 3.8 5.4c-1.4 4 1.8 7.1 2.2 10.7.3 2.6.8 5.1 2.4 5.1 2 0 1.8-6.3 3.6-6.3s1.6 6.3 3.6 6.3c1.6 0 2.1-2.5 2.4-5.1.4-3.6 3.6-6.7 2.2-10.7C19 2 15 1.8 12 4Z'/%3E%3C/svg%3E");
}

#bcgo-email {
    --bcgo-field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236d7895' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}

#bcgo-notes {
    --bcgo-field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236d7895' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H5v18h14V8l-5-5Zm0 0v5h5M8 12h8m-8 4h6'/%3E%3C/svg%3E");
}

.bcgo-field select {
    appearance: none;
    padding-right: 43px;
    background-image: var(--bcgo-field-icon, none), var(--bcgo-chevron);
    background-position: 20px 18px, right 16px center;
    background-size: 24px 24px, 20px 20px;
}

.bcgo-field select:has(option:first-child:checked),
.bcgo-field input::placeholder,
.bcgo-field textarea::placeholder {
    color: #626e89;
    opacity: 1;
}

.bcgo-field select option {
    color: var(--bcgo-navy);
    background: #fff;
}

.bcgo-field input:hover,
.bcgo-field select:hover,
.bcgo-field textarea:hover {
    border-color: #7585a3;
}

.bcgo-field input:focus,
.bcgo-field select:focus,
.bcgo-field textarea:focus {
    border-color: #2585e4;
    outline: 3px solid rgba(37, 133, 228, .22);
    outline-offset: 1px;
    background-color: #fff;
}

.bcgo-field textarea {
    min-height: 110px;
    max-height: 320px;
    resize: vertical;
}

.bcgo-field .wpcf7-not-valid {
    border-color: #b93745;
}

.bcgo-field .wpcf7-not-valid-tip {
    margin-top: 7px;
    color: #a12636;
    font-size: 14px;
    line-height: 1.5;
}

.bcgo-submit-wrap {
    position: relative;
    margin-top: -2px;
}

.bcgo-submit-wrap::after {
    content: '';
    position: absolute;
    top: 50%;
    left: calc(50% + 46px);
    width: 26px;
    height: 26px;
    background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h18m-7-7 7 7-7 7'/%3E%3C/svg%3E");
    transform: translateY(-50%);
    pointer-events: none;
}

.bcgo-submit-wrap input[type='submit'] {
    appearance: none;
    display: block;
    width: 100%;
    min-height: 74px;
    margin: 0;
    padding: 18px 60px 18px 28px;
    border: 1px solid rgba(94, 183, 255, .45);
    border-radius: 23px;
    color: #fff;
    background: linear-gradient(180deg, #3093e3 0%, #2481df 100%);
    box-shadow: 0 17px 30px rgba(38, 132, 216, .23), inset 0 2px 2px rgba(255, 255, 255, .2);
    font: 700 24px / 1.5 'DM Sans', Arial, sans-serif;
    cursor: pointer;
    transition: background .18s ease, box-shadow .18s ease, transform .18s ease;
}

.bcgo-submit-wrap input[type='submit']:hover:not(:disabled) {
    background: linear-gradient(180deg, #3196e5 0%, #166ec8 100%);
    box-shadow: 0 18px 32px rgba(38, 132, 216, .29);
    transform: translateY(-1px);
}

.bcgo-submit-wrap input[type='submit']:active:not(:disabled) {
    transform: translateY(0);
}

.bcgo-submit-wrap input[type='submit']:focus-visible {
    outline: 3px solid var(--bcgo-navy);
    outline-offset: 4px;
}

.bcgo-submit-wrap input[type='submit']:disabled,
.bcgo-form .submitting input[type='submit'] {
    cursor: wait;
    opacity: .7;
    pointer-events: none;
    transform: none;
    box-shadow: none;
}

.bcgo-form .submitting .bcgo-submit-wrap::after {
    opacity: 0;
}

.bcgo-card .wpcf7-spinner {
    position: absolute;
    top: 50%;
    right: 20px;
    margin: -12px 0 0;
}

/* More specific than CF7's defaults, so no !important overrides are needed. */
.bcgo-card .bcgo-form .wpcf7 form .wpcf7-response-output {
    margin: 22px 0 0;
    padding: 14px 18px;
    border-radius: 12px;
    color: var(--bcgo-navy);
    background: #fff;
    font-size: 16px;
    line-height: 1.5;
}

.bcgo-alert {
    margin: 0;
    padding: 18px;
    border-radius: 12px;
    color: #5e4616;
    background: #fff3d7;
    text-align: center;
}

@media (max-width: 900px) {
    .bcgo-shell { padding: 40px 24px; }
    .bcgo-card { padding: 34px 36px 38px; }
    .bcgo-heading h1 { font-size: clamp(42px, 7.4vw, 62px); }
    .bcgo-description { font-size: 20px; }
    .bcgo-field label { font-size: 17px; }
    .bcgo-field input:not([type='checkbox']),
    .bcgo-field select,
    .bcgo-field textarea { font-size: 16px; }
}

@media (max-width: 640px) {
    .bcgo-body { background-attachment: scroll; }
    .bcgo-shell { padding: 28px 16px; }
    .bcgo-card { padding: 29px 24px 30px; border-radius: 28px; }
    .bcgo-heading { margin-bottom: 27px; }
    .bcgo-heading h1 { font-size: clamp(30px, 7.4vw, 46px); letter-spacing: -.05em; }
    .bcgo-location { margin-bottom: 16px; font-size: 15px; letter-spacing: .06em; }
    .bcgo-divider { width: 76px; height: 5px; margin: 20px auto 18px; }
    .bcgo-description { max-width: 360px; font-size: 17px; line-height: 1.5; }
    .bcgo-fields { grid-template-columns: minmax(0, 1fr); gap: 21px; }
    .bcgo-field label { font-size: 16px; }
    .bcgo-field input:not([type='checkbox']),
    .bcgo-field select,
    .bcgo-field textarea { min-height: 56px; padding-left: 51px; background-position: 16px 16px; background-size: 22px 22px; }
    .bcgo-field select { background-position: 16px 16px, right 14px center; background-size: 22px 22px, 18px 18px; }
    .bcgo-field textarea { min-height: 118px; }
    .bcgo-submit-wrap { margin-top: 1px; }
    .bcgo-submit-wrap input[type='submit'] { min-height: 62px; padding-top: 14px; padding-bottom: 14px; border-radius: 17px; font-size: 21px; }
    .bcgo-submit-wrap::after { left: calc(50% + 38px); width: 24px; height: 24px; }
}

@media (max-width: 360px) {
    .bcgo-shell { padding: 20px 12px; }
    .bcgo-card { padding: 27px 18px; border-radius: 24px; }
    .bcgo-heading h1 { font-size: 28px; }
    .bcgo-description { font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
    .bcgo-body *, .bcgo-body *::before, .bcgo-body *::after {
        transition: none;
        animation: none;
    }
}
