/* Native Woo product typography and ergonomics shared by the verified GF product forms. */
body.single-product .summary > h1.product_title { display:block!important; color:#171717; font-size:clamp(1.6rem,3vw,2.3rem); line-height:1.2; margin:0 0 20px; }
body.single-product div.product .summary > .price { color:#171717!important; font-size:1.65rem; font-weight:600; }
body.single-product div.product .summary > .price :is(.amount,bdi,.woocommerce-price-after) { color:#171717!important; }
body.single-product :is(#gform_wrapper_2,#gform_wrapper_3,#gform_wrapper_8)[data-form-index].gform-theme {
  --gf-color-primary:#000; --gf-color-primary-rgb:0,0,0; --gf-color-primary-darker:#081974; --gf-color-primary-lighter:#333;
  --gf-color-secondary-contrast:#171717; --gf-color-secondary-contrast-rgb:23,23,23;
  --gf-ctrl-outline-color-focus:#010083; --gf-ctrl-border-color-focus:#010083;
}
body.single-product :is(#gform_wrapper_2,#gform_wrapper_3,#gform_wrapper_8) :is(input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],select,textarea) {
  max-width:100%; min-width:0; min-height:46px; font-size:16px; border-radius:7px;
}
body.single-product :is(#gform_wrapper_2,#gform_wrapper_3,#gform_wrapper_8) .gfield_label { font-size:15px; line-height:1.5; color:#171717; }
body.single-product :is(#gform_wrapper_2,#gform_wrapper_3,#gform_wrapper_8) :is(.gfield_description,.gform_fileupload_rules,.ginput_complex label) { font-size:13px; line-height:1.55; color:#54595f; }
body.single-product :is(#gform_wrapper_2,#gform_wrapper_3,#gform_wrapper_8) .gform_page_footer { display:flex; flex-wrap:wrap; gap:12px; align-items:center; padding-top:20px; }
body.single-product :is(#gform_wrapper_2,#gform_wrapper_3,#gform_wrapper_8) .gform_page_footer :is(input[type=button],input[type=submit],button) { min-height:48px!important; min-width:100px; font-size:16px; border-radius:7px; }
body.single-product :is(#gform_wrapper_2,#gform_wrapper_3,#gform_wrapper_8) .gform_page_footer .gform_previous_button { background:#fff; color:#171717; border:1px solid #b9b9b9; }
body.single-product :is(#gform_wrapper_2,#gform_wrapper_3,#gform_wrapper_8) .gform_page_footer .gform_previous_button:hover { background:#f3f3f3; }
body.single-product form.cart .single_add_to_cart_button { min-height:48px!important; background:#000; color:#fff; font-size:16px; border-radius:7px; }
body.single-product form.cart .single_add_to_cart_button:hover { background:#081974; color:#fff; }
body.single-product :is(#gform_wrapper_2,#gform_wrapper_3,#gform_wrapper_8) :is(input,select,textarea,button,a):focus-visible { outline:3px solid #010083; outline-offset:3px; }

/* One-Time Signature4055 only. Other products retain their native gallery and cart layout. */
body.postid-4055 main.site-main { width:100%; max-width:1240px; margin:0 auto; padding:0 30px; }
body.postid-4055 .woocommerce-breadcrumb { font-size:13px; line-height:1.6; margin:18px 0 24px; color:#54595f; }
body.postid-4055 #product-4055 { display:grid; grid-template-columns:minmax(0,1.06fr) minmax(400px,1fr); gap:40px; align-items:start; }
body.postid-4055 #product-4055::before, body.postid-4055 #product-4055::after { display:none; }
body.postid-4055 #product-4055 .ds-ot-overview { min-width:0; position:relative; isolation:isolate; padding:32px; border-radius:18px; background:#08090a; color:white; overflow:hidden; }
body.postid-4055 #product-4055 .ds-ot-overview::before { content:""; position:absolute; inset:0; z-index:-1; background:url("assets/datasure-graphite-documents.jpg") right top/cover no-repeat; opacity:.17; pointer-events:none; }
body.postid-4055 .ds-ot-overview .woocommerce-product-details__short-description { margin:0; }
body.postid-4055 #product-4055 > .summary { float:none; width:auto!important; min-width:0; margin:0; padding:28px; background:#fff; border:1px solid #ddd; border-top:4px solid #000; border-radius:14px; box-shadow:0 8px 28px rgb(0 0 0 / 5%); }
body.postid-4055 .ds-ot-kicker { margin:0 0 15px; color:#bfc2c8; font-size:12px; line-height:1.5; font-weight:600; letter-spacing:.05em; text-transform:uppercase; }
body.postid-4055 .ds-ot-title { display:block; margin:0 0 20px; color:#fff; font-size:clamp(2rem,3.2vw,2.9rem); font-weight:600; line-height:1.12; letter-spacing:-.025em; }
body.postid-4055 .ds-ot-lead { margin:0 0 20px; color:#eee; font-size:18px; line-height:1.6; }
body.postid-4055 .ds-ot-facts { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0 0 24px; }
body.postid-4055 .ds-ot-facts li { margin:0; padding:5px 8px; color:#f5f5f5; font-size:12px; line-height:1.5; border:1px solid #545454; border-radius:5px; }
body.postid-4055 .ds-ot-start { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 20px; border:1px solid #fff; border-radius:7px; color:#171717; background:#fff; font-weight:600; font-size:16px; text-decoration:none; }
body.postid-4055 .ds-ot-start:hover { color:#fff; background:#081974; border-color:#737cd0; }
body.postid-4055 .ds-ot-availability { margin:12px 0 24px; font-size:13px; line-height:1.55; color:#d6d6d6; }
body.postid-4055 .ds-ot-preflight { margin:0; border-top:1px solid #555; padding-top:16px; }
body.postid-4055 .ds-ot-preflight > summary { min-height:44px; font-weight:600; font-size:15px; line-height:1.5; cursor:pointer; color:#fff; }
body.postid-4055 .ds-ot-prerequisites h2 { color:#fff; font-size:17px; font-weight:600; margin:12px 0; }
body.postid-4055 .ds-ot-prerequisites ul { margin:0 0 14px; padding-left:20px; }
body.postid-4055 .ds-ot-prerequisites li { margin:0 0 9px; color:#eee; font-size:14px; line-height:1.6; }
body.postid-4055 .ds-ot-overview a:not(.ds-ot-start) { color:#fff; text-decoration:underline; text-underline-offset:3px; }
body.postid-4055 .ds-ot-timing p { margin:0; color:#ddd; font-size:13px; line-height:1.65; }
body.postid-4055 .ds-ot-order-heading { margin-bottom:24px; }
body.postid-4055 .ds-ot-order-heading .ds-ot-kicker { color:#54595f; margin-bottom:10px; }
body.postid-4055 .ds-ot-price-line { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 20px; }
body.postid-4055 .ds-ot-price-line h2 { margin:0; color:#171717; font-size:22px; line-height:1.3; font-weight:600; max-width:13ch; }
body.postid-4055 .ds-ot-price-line .price { margin:0; color:#171717; font-size:28px; font-weight:700; line-height:1.3; }
body.postid-4055 .ds-ot-price-line .woocommerce-price-after { font-size:14px; font-weight:500; }
body.postid-4055 #product-4055 .ds-ot-price-line .price { color:#171717!important; font-size:28px!important; font-weight:700!important; }
body.postid-4055 #product-4055 .ds-ot-price-line .price :is(.amount,bdi) { color:inherit!important; font-size:inherit!important; font-weight:inherit!important; }
body.postid-4055 #product-4055 .ds-ot-price-line .price .woocommerce-price-after { color:#171717!important; font-size:14px!important; font-weight:500!important; }
body.postid-4055 .ds-ot-order-unit { margin:12px 0 4px; font-size:14px; line-height:1.5; color:#333; }
body.postid-4055 .ds-ot-order-caption { margin:0; font-size:13px; line-height:1.5; color:#54595f; }
body.postid-4055 #gform_wrapper_2 { margin:0; }
body.postid-4055 #gform_wrapper_2 .gf_progressbar_wrapper { margin-bottom:24px; }
body.postid-4055 #gform_wrapper_2 .gf_progressbar_title { color:#333; font-size:14px; font-weight:600; line-height:1.5; }
body.postid-4055 #gform_wrapper_2 .gf_progressbar_percentage { background:#010083; color:#fff; }
body.postid-4055 #gform_wrapper_2 .gform_fields { border:0; padding:0; }
body.postid-4055 #gform_wrapper_2 #field_2_4 { min-width:0; border:1px dashed #9a9a9a; border-radius:10px; padding:16px; background:#f7f7f7; }
body.postid-4055 #gform_wrapper_2 #field_2_4.gfield_error { border-color:#b42318; }
body.postid-4055 #gform_wrapper_2 input[type=file] { width:100%; min-width:0; max-width:100%; height:auto; min-height:46px; padding:0; font-size:13px; line-height:44px; color:#333; }
body.postid-4055 .ds-ot-selected-file { margin:10px 0 0; color:#333; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
body.postid-4055 #gform_wrapper_2 input[type=file]::file-selector-button { min-height:44px; padding:10px 12px; margin-right:10px; border:1px solid #bbb; border-radius:5px; background:#fff; color:#171717; font:inherit; font-weight:600; cursor:pointer; }
body.postid-4055 #gform_wrapper_2 :is(.iti,.ginput_container) { max-width:100%; }
body.postid-4055 #gform_wrapper_2 #field_2_6 table { font-size:14px!important; table-layout:fixed; overflow-wrap:anywhere; }
body.postid-4055 #gform_wrapper_2 #field_2_6 td { padding:10px!important; }
body.postid-4055 #pdf-preview-modal { width:calc(100vw - 32px)!important; max-width:960px; height:82vh!important; height:82dvh!important; }
body.postid-4055 #pdf-preview-modal button { min-height:44px; min-width:44px; background:#000!important; color:#fff; border-radius:6px; }
body.postid-4055 #gform_wrapper_2 #field_2_21 .gfield_checkbox label { font-size:13px; line-height:1.55; }
body.postid-4055 .ds-ot-order-help { border-top:1px solid #ddd; margin-top:24px; padding-top:16px; font-size:13px; line-height:1.6; color:#54595f; }
body.postid-4055 .ds-ot-order-help p { margin:0 0 5px; }
body.postid-4055 .ds-ot-order-help a { color:#010083; text-decoration:underline; text-underline-offset:3px; }
body.postid-4055 #product-4055 > .ds-ot-details { grid-column:1/-1; min-width:0; }
body.postid-4055 .ds-ot-how { padding:28px; border:1px solid #ddd; border-radius:14px; background:#f6f6f6; }
body.postid-4055 .ds-ot-details h2 { margin:0 0 24px; color:#171717; font-size:clamp(1.5rem,2.4vw,2rem); line-height:1.25; font-weight:600; }
body.postid-4055 .ds-ot-how ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; list-style:none; counter-reset:ds-ot-step; margin:0; padding:0; }
body.postid-4055 .ds-ot-how li { counter-increment:ds-ot-step; font-size:15px; line-height:1.7; color:#444; }
body.postid-4055 .ds-ot-how li::before { content:counter(ds-ot-step); display:flex; align-items:center; justify-content:center; width:32px; height:32px; border:1px solid #010083; color:#010083; border-radius:50%; margin-bottom:14px; font-weight:600; }
body.postid-4055 .ds-ot-how strong { display:block; color:#171717; margin-bottom:8px; font-size:16px; }
body.postid-4055 .ds-ot-trust { max-width:920px; margin:24px auto 0; color:#54595f; font-size:14px; line-height:1.7; }
body.postid-4055 .ds-ot-faq { max-width:920px; margin:48px auto 0; }
body.postid-4055 .ds-ot-faq details { border-top:1px solid #ddd; }
body.postid-4055 .ds-ot-faq details:last-child { border-bottom:1px solid #ddd; }
body.postid-4055 .ds-ot-faq summary { min-height:60px; padding:18px 26px 18px 0; color:#171717; cursor:pointer; font-size:16px; font-weight:600; line-height:1.5; }
body.postid-4055 .ds-ot-faq details p { margin:0 0 18px; padding-right:22px; font-size:15px; line-height:1.7; color:#54595f; }
body.postid-4055 .ds-ot-details a { color:#010083; text-decoration:underline; text-underline-offset:3px; }
body.postid-4055 .ds-ot-help { margin:32px 0 48px; padding:20px; border:1px solid #ddd; border-radius:10px; text-align:center; font-size:15px; line-height:1.6; }
body.postid-4055 .ds-ot-help p { margin:0; }
body.postid-4055 .ds-ot-details :is(a,summary):focus-visible, body.postid-4055 .ds-ot-overview :is(a,summary):focus-visible { outline:3px solid #010083; outline-offset:4px; }
body.postid-4055 #ds-ot-order, body.postid-4055 #tab-description { scroll-margin-top:24px; }
@media(max-width:960px) {
 body.postid-4055 #product-4055 { grid-template-columns:minmax(0,1fr); gap:24px; }
 body.postid-4055 #product-4055 .ds-ot-overview { padding:26px; }
 body.postid-4055 #product-4055 > .summary { padding:24px; }
 body.postid-4055 .ds-ot-title { font-size:clamp(2rem,5vw,2.7rem); }
 body.postid-4055 .ds-ot-how ol { grid-template-columns:1fr; gap:24px; }
}
@media(max-width:480px) {
 body.postid-4055 main.site-main { padding:0 20px; }
 body.postid-4055 .woocommerce-breadcrumb { font-size:12px; margin:14px 0 18px; }
 body.postid-4055 #product-4055 .ds-ot-overview { padding:22px; border-radius:12px; }
 body.postid-4055 #product-4055 > .summary { padding:20px; border-radius:12px; }
 body.postid-4055 .ds-ot-title { font-size:32px; }
 body.postid-4055 .ds-ot-lead { font-size:16px; line-height:1.55; }
 body.postid-4055 .ds-ot-facts { margin-bottom:18px; }
 body.postid-4055 .ds-ot-facts li { font-size:11px; }
 body.postid-4055 .ds-ot-start { width:100%; }
 body.postid-4055 .ds-ot-availability { margin-bottom:16px; font-size:12px; }
 body.postid-4055 .ds-ot-price-line h2 { font-size:20px; max-width:12ch; }
 body.postid-4055 .ds-ot-price-line .price { font-size:26px; }
 body.postid-4055 #gform_wrapper_2 #field_2_4 { padding:12px; }
 body.postid-4055 .ds-ot-how { padding:22px; }
 body.postid-4055 .ds-ot-faq { margin-top:36px; }
}
@media(prefers-reduced-motion:reduce) { body.postid-4055 * { scroll-behavior:auto; } }

/* Verified trust marks: native unaltered ANSSI and EU artwork on white. */
body.postid-4055 .ds-ot-assurance { display:flex; align-items:center; gap:14px; margin:0 0 22px; padding:12px; border-radius:8px; background:#fff; color:#171717; }
body.postid-4055 .ds-ot-assurance-marks { display:flex; align-items:center; gap:10px; flex:0 0 auto; }
body.postid-4055 .ds-ot-assurance-marks > p { display:contents; }
body.postid-4055 .ds-ot-assurance-marks a { display:flex; align-items:center; justify-content:center; min-height:56px; min-width:44px; }
body.postid-4055 .ds-ot-assurance-marks img { display:block; height:auto; max-width:none; object-fit:contain; }
body.postid-4055 .ds-ot-assurance-marks .ds-ot-visa { width:140px; }
body.postid-4055 .ds-ot-assurance-marks .ds-ot-eidas { width:64px; }
body.postid-4055 .ds-ot-assurance > p { margin:0; font-size:13px; line-height:1.45; color:#171717; min-width:0; }
body.postid-4055 .ds-ot-assurance strong { display:block; font-weight:600; }
body.postid-4055 .ds-ot-assurance span { display:block; margin-top:5px; font-size:12px; color:#54595f; }
body.postid-4055 .ds-ot-assurance a:focus-visible { outline:3px solid #010083; outline-offset:2px; }
@media(max-width:480px) { body.postid-4055 .ds-ot-assurance { flex-direction:column; gap:8px; padding:12px; } body.postid-4055 .ds-ot-assurance > p { text-align:center; } }
