@CHARSET "UTF-8"; /* * Moderner EinSeitenCheckout * * Die Optik hält sich bewusst zurück: Schrift, Textfarbe und Hintergrund kommen aus dem * Theme, eigene Angaben gibt es nur dort, wo die Struktur sie braucht. Linien und Flächen * sind neutrales Grau mit Transparenz und wirken deshalb auf hellen wie auf dunklen * Themes. Gedämpfter Text entsteht über opacity statt über eine eigene Farbe. * * Die wenigen Werte liegen als Custom Properties auf .wpsg_smartcheckout und können im * Theme überschrieben werden, ohne dass eine Regel angefasst werden muss. * * Alle Größen rechnen über --sc-u (Standard 1rem). Themes, die die Schriftgröße von html * verändern (z.B. Bootstrap 3 mit 10px), setzen hier nur --sc-u auf einen festen Wert. */ .wpsg_smartcheckout, .wpsg_smartcheckout_after { --sc-u:1rem; } .wpsg_smartcheckout { --sc-line:rgba(127, 127, 127, 0.35); --sc-line-soft:rgba(127, 127, 127, 0.2); --sc-flat:rgba(127, 127, 127, 0.08); --sc-accent:currentColor; --sc-error:#b3261e; --sc-radius:3px; --sc-gap:calc(2 * var(--sc-u, 1rem)); } .wpsg_smartcheckout [v-cloak], .wpsg_smartcheckout[v-cloak] { display:none; } .wpsg_smartcheckout_noscript { padding:var(--sc-u, 1rem); border-left:3px solid var(--sc-error, #b3261e); margin-bottom:calc(1.5 * var(--sc-u, 1rem)); } .wpsg_smartcheckout * { box-sizing:border-box; } /* Themes mit Inhaltskarte (z.B. Kadence "content-style-boxed") ziehen alignwide bis an den Kartenrand, der Checkout bleibt im Innenabstand */ html body.content-style-boxed .entry-content .wpsg_smartcheckout.alignwide, html body.content-style-boxed .entry-content .wpsg_smartcheckout_after.alignwide { margin-left:0; margin-right:0; width:auto; max-width:100%; } /* Layout */ .wpsg_smartcheckout .sc_layout { display:grid; grid-template-columns:minmax(0, 1fr) calc(21 * var(--sc-u, 1rem)); gap:var(--sc-gap); align-items:start; } .wpsg_smartcheckout_single .sc_layout { grid-template-columns:minmax(0, 1fr); } .wpsg_smartcheckout .sc_main { display:flex; flex-direction:column; min-width:0; } /* Hülle der Eingaben, im Bestätigungsschritt gesperrt; ohne die Rahmen und Abstände, die Browser einem fieldset geben */ .wpsg_smartcheckout .sc_fieldset { display:flex; flex-direction:column; min-width:0; margin:0; padding:0; border:0; } .wpsg_smartcheckout .sc_fieldset:disabled .sc_box { opacity:0.75; } .wpsg_smartcheckout .sc_confirm_note { margin-bottom:var(--sc-gap); padding:calc(0.9 * var(--sc-u, 1rem)); border-left:3px solid var(--sc-accent); background:var(--sc-flat); scroll-margin-top:calc(1.5 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_confirm_note p { margin:calc(0.4 * var(--sc-u, 1rem)) 0 calc(0.75 * var(--sc-u, 1rem)) 0; } .wpsg_smartcheckout .sc_side { position:sticky; top:calc(1.5 * var(--sc-u, 1rem)); } .wpsg_smartcheckout_single .sc_side { position:static; } .wpsg_smartcheckout .sc_layout.sc_busy { opacity:0.6; pointer-events:none; transition:opacity 0.15s ease-out; } /* Die Schritte werden nur durch eine Linie getrennt, nicht durch gerahmte Kästen */ .wpsg_smartcheckout .sc_box { padding:var(--sc-gap) 0; border-top:1px solid var(--sc-line-soft); } .wpsg_smartcheckout .sc_box:first-child { padding-top:0; border-top:0; } .wpsg_smartcheckout .sc_title { margin:0 0 calc(1.25 * var(--sc-u, 1rem)) 0; font-size:calc(1.05 * var(--sc-u, 1rem)); line-height:1.3; } .wpsg_smartcheckout .sc_step { margin-right:calc(0.5 * var(--sc-u, 1rem)); font-weight:400; opacity:0.5; } /* Meldungen */ .wpsg_smartcheckout .sc_messages { display:flex; flex-direction:column; gap:calc(0.5 * var(--sc-u, 1rem)); margin-bottom:var(--sc-gap); } .wpsg_smartcheckout .sc_messages:empty { display:none; margin:0; } .wpsg_smartcheckout .sc_message { padding:calc(0.6 * var(--sc-u, 1rem)) calc(0.9 * var(--sc-u, 1rem)); border-left:3px solid var(--sc-line); background:var(--sc-flat); } .wpsg_smartcheckout .sc_message_error { border-left-color:var(--sc-error); } .wpsg_smartcheckout .sc_message_message { border-left-color:#5a9e3d; } /* Leerer Warenkorb */ .wpsg_smartcheckout .sc_empty { padding:calc(2.5 * var(--sc-u, 1rem)) 0; } /* Warenkorbpositionen: jede Position steht in einem eigenen Rahmen, damit Produktvariablen und Hinweise erkennbar zum Produkt gehören */ .wpsg_smartcheckout .sc_products { display:flex; flex-direction:column; gap:calc(0.75 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_product { display:grid; grid-template-columns:auto minmax(0, 1fr) auto auto; gap:var(--sc-u, 1rem); align-items:start; padding:var(--sc-u, 1rem); border:1px solid var(--sc-line-soft); border-radius:var(--sc-radius); } .wpsg_smartcheckout .sc_product_image img { display:block; width:56px; height:56px; object-fit:cover; border-radius:var(--sc-radius); } .wpsg_smartcheckout .sc_product_name { font-weight:600; } .wpsg_smartcheckout .sc_product_desc, .wpsg_smartcheckout .sc_product_extra, .wpsg_smartcheckout .sc_product_tax { font-size:calc(0.85 * var(--sc-u, 1rem)); opacity:0.7; margin-top:calc(0.2 * var(--sc-u, 1rem)); } /* Eingabefelder der Module (z.B. Produktvariablen) als eigene Zeile über alle Spalten der Position, innerhalb des Rahmens durch eine Linie abgesetzt */ .wpsg_smartcheckout .sc_product_fields { grid-column:1 / -1; display:flex; flex-direction:column; gap:var(--sc-u, 1rem); min-width:0; padding-top:calc(0.75 * var(--sc-u, 1rem)); border-top:1px solid var(--sc-line-soft); font-size:calc(0.85 * var(--sc-u, 1rem)); } /* Upload zum Produkt (wpsg_mod_orderupload) an der Warenkorbposition * * Das Ziel wird nach dem Hochladen vom Modul per Script neu befüllt, die Regeln hängen deshalb am * klassischen Markup (ul, input[type=button]). Die Spezifität liegt über den Button-Regeln der Themes. */ .wpsg_smartcheckout .sc_upload { display:flex; flex-direction:column; gap:calc(0.4 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_upload_label { font-size:calc(0.8 * var(--sc-u, 1rem)); opacity:0.7; } .wpsg_smartcheckout .sc_upload_target { display:flex; flex-wrap:wrap; align-items:center; gap:calc(0.5 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_upload_target ul { flex:1 1 100%; display:flex; flex-direction:column; gap:calc(0.3 * var(--sc-u, 1rem)); margin:0; padding:0; list-style:none; } .wpsg_smartcheckout .sc_upload_target li { display:flex; align-items:center; gap:calc(0.5 * var(--sc-u, 1rem)); margin:0; padding:calc(0.35 * var(--sc-u, 1rem)) calc(0.6 * var(--sc-u, 1rem)); border:1px solid var(--sc-line-soft); border-radius:var(--sc-radius); } .wpsg_smartcheckout .sc_upload_target li > a:first-child { flex:1 1 auto; min-width:0; overflow-wrap:anywhere; color:inherit; } .wpsg_smartcheckout .sc_upload_target .size { font-size:calc(0.8 * var(--sc-u, 1rem)); opacity:0.7; } .wpsg_smartcheckout .sc_upload_target .removeLink { flex:0 0 auto; display:flex; opacity:0.7; } .wpsg_smartcheckout .sc_upload_target .removeLink:hover { opacity:1; } .wpsg_smartcheckout .sc_upload_target .removeLink img { display:block; width:16px; height:16px; } .wpsg_smartcheckout .sc_upload_target input[type="file"] { flex:1 1 calc(14 * var(--sc-u, 1rem)); min-width:0; } .wpsg_smartcheckout .sc_upload_target input[type="button"] { flex:0 0 auto; min-height:0; margin:0; padding:calc(0.5 * var(--sc-u, 1rem)) calc(0.9 * var(--sc-u, 1rem)); border:1px solid var(--sc-line); border-radius:var(--sc-radius); background:none; color:inherit; font:inherit; font-size:calc(0.9 * var(--sc-u, 1rem)); line-height:1.2; text-transform:none; letter-spacing:normal; box-shadow:none; cursor:pointer; } .wpsg_smartcheckout .sc_upload_target input[type="button"]:hover { background:var(--sc-flat); } /* Der Upload startet direkt nach der Auswahl (smartcheckout.js, startUpload), der Button des Moduls wird nicht gebraucht */ .wpsg_smartcheckout .sc_upload_target [data-sc-autoupload] { display:none; } /* Bestellupload (wpsg_mod_orderupload) als eigener Block unter den Kundendaten, Liste und Dateiauswahl wie beim Upload zum Produkt */ .wpsg_smartcheckout .sc_orderupload .sc_title { margin-bottom:var(--sc-u, 1rem); } .wpsg_smartcheckout .sc_orderupload .sc_hint { margin-top:0; } .wpsg_smartcheckout .sc_orderupload .sc_upload { font-size:calc(0.85 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_upload_message { flex:1 1 100%; padding:calc(0.35 * var(--sc-u, 1rem)) calc(0.6 * var(--sc-u, 1rem)); border-left:3px solid var(--sc-line); background:var(--sc-flat); } .wpsg_smartcheckout .sc_upload_message_error { border-left-color:var(--sc-error); } .wpsg_smartcheckout .sc_upload_message_message { border-left-color:#5a9e3d; } .wpsg_smartcheckout .sc_upload_wait { flex:1 1 100%; opacity:0.7; } /* Dateiauswahl im gesamten Checkout (Upload zum Produkt, Bestellupload) in der Optik der übrigen Felder */ .wpsg_smartcheckout input[type="file"] { max-width:100%; color:inherit; font:inherit; font-size:calc(0.85 * var(--sc-u, 1rem)); } .wpsg_smartcheckout input[type="file"]::file-selector-button { margin-right:calc(0.6 * var(--sc-u, 1rem)); padding:calc(0.45 * var(--sc-u, 1rem)) calc(0.8 * var(--sc-u, 1rem)); border:1px solid var(--sc-line); border-radius:var(--sc-radius); background:none; color:inherit; font:inherit; cursor:pointer; } .wpsg_smartcheckout input[type="file"]::file-selector-button:hover { background:var(--sc-flat); } /* Produktvariablen an der Warenkorbposition */ .wpsg_smartcheckout .sc_pvars { display:flex; flex-direction:column; gap:calc(0.6 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_pvar { display:flex; flex-direction:column; gap:calc(0.25 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_pvar_label { font-size:calc(0.8 * var(--sc-u, 1rem)); opacity:0.7; } .wpsg_smartcheckout .sc_pvar_input { width:100%; padding:calc(0.4 * var(--sc-u, 1rem)) calc(0.6 * var(--sc-u, 1rem)); border:1px solid var(--sc-line); border-radius:var(--sc-radius); background:none; color:inherit; font:inherit; } .wpsg_smartcheckout textarea.sc_pvar_input { resize:vertical; } .wpsg_smartcheckout .sc_pvar_check { display:flex; align-items:flex-start; gap:calc(0.5 * var(--sc-u, 1rem)); cursor:pointer; } .wpsg_smartcheckout .sc_pvar_check input[type="checkbox"] { flex:0 0 auto; margin:calc(0.15 * var(--sc-u, 1rem)) 0 0 0; } .wpsg_smartcheckout .sc_pvar.sc_invalid .sc_pvar_input { border-color:var(--sc-error); } .wpsg_smartcheckout .sc_pvar.sc_invalid .sc_pvar_label, .wpsg_smartcheckout .sc_pvar.sc_invalid .sc_pvar_check { color:var(--sc-error); opacity:1; } .wpsg_smartcheckout .sc_product_price { text-align:right; white-space:nowrap; } .wpsg_smartcheckout .sc_product_price_total { font-weight:600; } .wpsg_smartcheckout .sc_product_price_single { font-size:calc(0.8 * var(--sc-u, 1rem)); opacity:0.7; } /* Mengenwahl */ .wpsg_smartcheckout .sc_product_amount { display:flex; flex-direction:column; align-items:center; gap:calc(0.35 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_stepper { display:inline-flex; align-items:stretch; border:1px solid var(--sc-line); border-radius:var(--sc-radius); overflow:hidden; } .wpsg_smartcheckout .sc_stepper_btn { border:0; background:none; width:calc(1.9 * var(--sc-u, 1rem)); cursor:pointer; font:inherit; line-height:1; color:inherit; } .wpsg_smartcheckout .sc_stepper_btn:disabled { cursor:default; opacity:0.4; } .wpsg_smartcheckout .sc_stepper_input { width:calc(2.8 * var(--sc-u, 1rem)); border:0; text-align:center; padding:calc(0.4 * var(--sc-u, 1rem)) 0; background:none; color:inherit; font:inherit; } .wpsg_smartcheckout .sc_stepper_static { display:inline-block; padding:calc(0.4 * var(--sc-u, 1rem)) calc(0.9 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_remove { border:0; background:none; padding:0; font-size:calc(0.8 * var(--sc-u, 1rem)); opacity:0.7; text-decoration:underline; cursor:pointer; color:inherit; } /* Warenkorbteaser: angelehnt an die Warenkorbpositionen, aber zurückhaltender */ .wpsg_smartcheckout .sc_teaser { padding-top:var(--sc-u, 1rem); border-top:1px solid var(--sc-line-soft); } .wpsg_smartcheckout .sc_teaser_title { margin-bottom:calc(0.5 * var(--sc-u, 1rem)); font-size:calc(0.85 * var(--sc-u, 1rem)); opacity:0.7; } .wpsg_smartcheckout .sc_teaser_item { display:flex; align-items:center; gap:calc(0.75 * var(--sc-u, 1rem)) var(--sc-u, 1rem); flex-wrap:wrap; padding:calc(0.5 * var(--sc-u, 1rem)) 0; font-size:calc(0.9 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_teaser_image img { display:block; width:40px; height:40px; object-fit:cover; border-radius:var(--sc-radius); } .wpsg_smartcheckout .sc_teaser_body { flex:1 1 calc(10 * var(--sc-u, 1rem)); min-width:0; } .wpsg_smartcheckout .sc_teaser_price { font-size:calc(0.8 * var(--sc-u, 1rem)); opacity:0.7; } .wpsg_smartcheckout .sc_teaser_action { display:flex; align-items:center; gap:calc(0.5 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_teaser_amount { width:calc(2.8 * var(--sc-u, 1rem)); padding:calc(0.45 * var(--sc-u, 1rem)) 0; border:1px solid var(--sc-line); border-radius:var(--sc-radius); text-align:center; background:none; color:inherit; font:inherit; } /* Gutschein */ .wpsg_smartcheckout .sc_voucher { margin-top:calc(1.5 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_voucher_label { display:block; margin-bottom:calc(0.35 * var(--sc-u, 1rem)); font-size:calc(0.85 * var(--sc-u, 1rem)); opacity:0.7; } .wpsg_smartcheckout .sc_voucher_row { display:flex; gap:calc(0.5 * var(--sc-u, 1rem)); flex-wrap:wrap; } .wpsg_smartcheckout .sc_voucher_input { flex:1 1 calc(12 * var(--sc-u, 1rem)); min-width:0; } .wpsg_smartcheckout .sc_voucher_list { margin-top:calc(0.75 * var(--sc-u, 1rem)); display:flex; flex-direction:column; gap:calc(0.4 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_voucher_item { display:flex; align-items:center; gap:calc(0.75 * var(--sc-u, 1rem)); flex-wrap:wrap; font-size:calc(0.9 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_voucher_code { font-weight:600; } .wpsg_smartcheckout .sc_voucher_partial { opacity:0.7; } .wpsg_smartcheckout .sc_voucher_value { margin-left:auto; } /* Formularfelder */ .wpsg_smartcheckout .sc_fields { display:grid; grid-template-columns:repeat(12, 1fr); gap:calc(0.9 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_field { display:flex; flex-direction:column; gap:calc(0.3 * var(--sc-u, 1rem)); grid-column:span 12; min-width:0; } .wpsg_smartcheckout .sc_field_half { grid-column:span 6; } .wpsg_smartcheckout .sc_field_wide { grid-column:span 8; } .wpsg_smartcheckout .sc_field_narrow { grid-column:span 4; } .wpsg_smartcheckout .sc_label { font-size:calc(0.85 * var(--sc-u, 1rem)); opacity:0.7; } .wpsg_smartcheckout .sc_required { color:var(--sc-error); margin-left:calc(0.15 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_input, .wpsg_smartcheckout .sc_voucher_input, .wpsg_smartcheckout .sc_textarea { width:100%; padding:calc(0.55 * var(--sc-u, 1rem)) calc(0.7 * var(--sc-u, 1rem)); border:1px solid var(--sc-line); border-radius:var(--sc-radius); background:none; color:inherit; font:inherit; } .wpsg_smartcheckout .sc_textarea { resize:vertical; } /* Auswahlfelder mit eigenem Pfeil: der Hintergrund der Felder wird zurückgesetzt, damit verschwindet ein vom Theme gezeichneter Pfeil */ #wpsg_smartcheckout select.sc_input, #wpsg_smartcheckout select.sc_pvar_input, #wpsg_smartcheckout .sc_modul_extra select, #wpsg_smartcheckout .sc_choice_hint select, #wpsg_smartcheckout .sc_choice_extra select { -webkit-appearance:none; appearance:none; padding-right:calc(2 * var(--sc-u, 1rem)); background-color:transparent; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237f7f7f' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right calc(0.7 * var(--sc-u, 1rem)) center; background-size:calc(0.7 * var(--sc-u, 1rem)) auto; cursor:pointer; } .wpsg_smartcheckout .sc_hint { margin-top:var(--sc-u, 1rem); font-size:calc(0.8 * var(--sc-u, 1rem)); opacity:0.7; } .wpsg_smartcheckout .sc_modul_login:empty, .wpsg_smartcheckout .sc_modul_customer:empty, .wpsg_smartcheckout .sc_modul_payment:empty { display:none; } .wpsg_smartcheckout .sc_modul_basket, .wpsg_smartcheckout .sc_modul_customer, .wpsg_smartcheckout .sc_modul_payment, .wpsg_smartcheckout .sc_modul_sum { margin-top:var(--sc-u, 1rem); } .wpsg_smartcheckout .sc_modul_sum:empty { display:none; } /* Modulblöcke vor dem Abschluss (Bestellvariablen, gesonderte Lieferadresse, …) * * Diese Module bringen das Markup des klassischen Checkouts mit (wpsg_box, wpsg_inner, * wpsg_checkoutblock). Die Regeln dazu in frontend.css hängen an .wpsg_checkout und * greifen hier nicht — die Felder werden deshalb an dieser Stelle auf die Optik des * EinSeitenCheckouts gebracht. */ .wpsg_smartcheckout .sc_modul_extra > div + div { margin-top:var(--sc-gap); } .wpsg_smartcheckout .sc_modul_extra h2 { margin:0 0 calc(1.25 * var(--sc-u, 1rem)) 0; padding:0; font-size:calc(1.05 * var(--sc-u, 1rem)); line-height:1.3; } .wpsg_smartcheckout .sc_modul_extra .wpsg_spacer, .wpsg_smartcheckout .sc_modul_extra .wpsg_clear { display:none; } .wpsg_smartcheckout .sc_modul_extra .wpsg_inner { display:flex; flex-direction:column; gap:calc(0.9 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_modul_extra .wpsg_checkoutblock { display:flex; flex-direction:column; gap:calc(0.3 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_modul_extra label { font-size:calc(0.85 * var(--sc-u, 1rem)); opacity:0.7; } .wpsg_smartcheckout .sc_modul_extra .wpsg_required { color:var(--sc-error); margin-left:calc(0.15 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_modul_extra input[type="text"], .wpsg_smartcheckout .sc_modul_extra input[type="tel"], .wpsg_smartcheckout .sc_modul_extra input[type="email"], .wpsg_smartcheckout .sc_modul_extra input[type="number"], .wpsg_smartcheckout .sc_modul_extra select, .wpsg_smartcheckout .sc_modul_extra textarea { width:100%; padding:calc(0.55 * var(--sc-u, 1rem)) calc(0.7 * var(--sc-u, 1rem)); border:1px solid var(--sc-line); border-radius:var(--sc-radius); background:none; color:inherit; font:inherit; } .wpsg_smartcheckout .sc_modul_extra .wpsg_error { border-color:var(--sc-error); } /* Ankreuzfelder: Kästchen und Text stehen in einer Zeile, der Text bleibt bei einem Umbruch bündig */ .wpsg_smartcheckout .sc_modul_extra .wpsg_mod_ordervars_check label { display:flex; align-items:flex-start; gap:calc(0.5 * var(--sc-u, 1rem)); opacity:1; cursor:pointer; } .wpsg_smartcheckout .sc_modul_extra .wpsg_mod_ordervars_check label > input[type="checkbox"] { flex:0 0 auto; width:auto; margin:0; } .wpsg_smartcheckout .sc_modul_extra .wpsg_mod_ordervars_text { flex:1 1 auto; min-width:0; } /* Versand- und Zahlungsauswahl */ .wpsg_smartcheckout .sc_choices { display:flex; flex-direction:column; gap:calc(0.5 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_choice { --sc-choice-radio:var(--sc-u, 1rem); --sc-choice-gap:calc(0.6 * var(--sc-u, 1rem)); display:flex; flex-direction:column; gap:calc(0.3 * var(--sc-u, 1rem)); padding:calc(0.8 * var(--sc-u, 1rem)) calc(0.9 * var(--sc-u, 1rem)); border:1px solid var(--sc-line-soft); border-radius:var(--sc-radius); cursor:pointer; } .wpsg_smartcheckout .sc_choice_active { border-color:var(--sc-accent); background:var(--sc-flat); } /* Kopfzeile: Radio, Logo, Bezeichnung und Preis auf einer Linie */ .wpsg_smartcheckout .sc_choice_head { display:flex; align-items:center; gap:var(--sc-choice-gap); min-width:0; } .wpsg_smartcheckout .sc_choice_head input[type="radio"] { flex:0 0 auto; width:var(--sc-choice-radio); height:var(--sc-choice-radio); margin:0; } /* Feste Breite, damit die Bezeichnungen bei unterschiedlich breiten Logos bündig untereinander stehen */ .wpsg_smartcheckout .sc_choice_logo { flex:0 0 auto; width:calc(4.5 * var(--sc-u, 1rem)); height:22px; object-fit:contain; object-position:left center; } .wpsg_smartcheckout .sc_choice_name { flex:1 1 auto; min-width:0; font-weight:600; } .wpsg_smartcheckout .sc_choice_price { flex:0 0 auto; margin-left:auto; white-space:nowrap; } /* Beschreibung und Zusatzangaben darunter, bündig mit Logo bzw. Bezeichnung */ .wpsg_smartcheckout .sc_choice_hint, .wpsg_smartcheckout .sc_choice_extra { padding-left:calc(var(--sc-choice-radio) + var(--sc-choice-gap)); font-size:calc(0.85 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_choice_hint { opacity:0.7; } .wpsg_smartcheckout .sc_choice_head { cursor:pointer; } /* * Eingabefelder im Hinweis einer Versand- oder Zahlungsart (z.B. Kreditkarte, Lastschrift) * * Das Markup kommt aus den Modulen (Label mit Text und Feld), es wird hier auf die Optik der übrigen Felder gebracht. * Hinweise mit Feldern werden nicht gedämpft, die vorangestellten Umbrüche und Clear-Elemente entfallen. */ .wpsg_smartcheckout .sc_choice_hint:has(input, select, textarea) { opacity:1; } .wpsg_smartcheckout .sc_choice_hint:has(input, select, textarea) > br, .wpsg_smartcheckout .sc_choice_hint .wpsg_clear { display:none; } .wpsg_smartcheckout .sc_choice_hint label, .wpsg_smartcheckout .sc_choice_extra label { display:block; margin:0; font-size:calc(0.85 * var(--sc-u, 1rem)); font-weight:inherit; } .wpsg_smartcheckout .sc_choice_hint input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]), .wpsg_smartcheckout .sc_choice_hint select, .wpsg_smartcheckout .sc_choice_hint textarea, .wpsg_smartcheckout .sc_choice_extra input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]), .wpsg_smartcheckout .sc_choice_extra select { display:block; width:100%; margin:calc(0.3 * var(--sc-u, 1rem)) 0 0 0; padding:calc(0.5 * var(--sc-u, 1rem)) calc(0.65 * var(--sc-u, 1rem)); border:1px solid var(--sc-line); border-radius:var(--sc-radius); background-color:transparent; color:inherit; font:inherit; font-size:var(--sc-u, 1rem); line-height:1.3; box-shadow:none; } .wpsg_smartcheckout .sc_choice_hint .wpsg_error, .wpsg_smartcheckout .sc_choice_extra .wpsg_error { border-color:var(--sc-error); } .wpsg_smartcheckout .sc_choice_hint .wpsg_required { color:var(--sc-error); margin-left:calc(0.15 * var(--sc-u, 1rem)); } /* Kreditkarte: zweispaltig, Monat und Jahr der Gültigkeit nebeneinander */ .wpsg_smartcheckout .sc_choice_hint .wpsg_mod_creditcard { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:calc(0.75 * var(--sc-u, 1rem)) var(--sc-u, 1rem); max-width:calc(34 * var(--sc-u, 1rem)); margin-top:calc(0.6 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_choice_hint .wpsg_mod_creditcard_field:has(select + select) { grid-column:1 / -1; } .wpsg_smartcheckout .sc_choice_hint .wpsg_mod_creditcard label:has(select + select) { display:flex; flex-wrap:wrap; align-items:center; } .wpsg_smartcheckout .sc_choice_hint .wpsg_mod_creditcard label:has(select + select) select { display:inline-block; width:auto; min-width:calc(5.5 * var(--sc-u, 1rem)); margin:0 0 0 calc(0.5 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_choice_hint .wpsg_mandatoryfield_hint { grid-column:1 / -1; font-size:calc(0.8 * var(--sc-u, 1rem)); opacity:0.7; } /* Zusammenfassung */ .wpsg_smartcheckout .sc_summary { position:relative; padding:calc(1.25 * var(--sc-u, 1rem)); border:1px solid var(--sc-line-soft); border-radius:var(--sc-radius); } .wpsg_smartcheckout_single .sc_side { margin-top:var(--sc-gap); } .wpsg_smartcheckout .sc_sum_products { display:flex; flex-direction:column; gap:calc(0.3 * var(--sc-u, 1rem)); margin-bottom:calc(0.75 * var(--sc-u, 1rem)); padding-bottom:calc(0.75 * var(--sc-u, 1rem)); border-bottom:1px solid var(--sc-line-soft); font-size:calc(0.85 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_sum_products:empty { display:none; } .wpsg_smartcheckout .sc_sum_product { display:flex; justify-content:space-between; gap:var(--sc-u, 1rem); align-items:baseline; } .wpsg_smartcheckout .sc_sum_product_name { min-width:0; overflow-wrap:anywhere; } .wpsg_smartcheckout .sc_sum_product_price { white-space:nowrap; } .wpsg_smartcheckout .sc_sum_rows { display:flex; flex-direction:column; gap:calc(0.4 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_sum_row { display:flex; justify-content:space-between; gap:var(--sc-u, 1rem); align-items:baseline; font-size:calc(0.95 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_sum_value { white-space:nowrap; } .wpsg_smartcheckout .sc_sum_note, .wpsg_smartcheckout .sc_sum_hint { font-size:calc(0.8 * var(--sc-u, 1rem)); opacity:0.7; } .wpsg_smartcheckout .sc_sum_hint { margin-top:calc(0.75 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_sum_total { margin-top:calc(0.5 * var(--sc-u, 1rem)); padding-top:calc(0.6 * var(--sc-u, 1rem)); border-top:1px solid var(--sc-line); font-size:calc(1.05 * var(--sc-u, 1rem)); font-weight:600; } /* Zusatzzeilen der Module (z.B. Gesamtgewicht) bringen das Markup der klassischen Zusammenfassung mit, sie erscheinen gedämpft wie die Hinweise */ .wpsg_smartcheckout .sc_modul_sum .overview_sum_row { display:flex; justify-content:space-between; gap:var(--sc-u, 1rem); align-items:baseline; font-size:calc(0.8 * var(--sc-u, 1rem)); opacity:0.7; } .wpsg_smartcheckout .sc_modul_sum .overview_sum_row .title, .wpsg_smartcheckout .sc_modul_sum .overview_sum_row .value { width:auto; margin:0; font-weight:normal; } .wpsg_smartcheckout .sc_modul_sum .overview_sum_row .value { white-space:nowrap; } .wpsg_smartcheckout .sc_modul_sum .overview_sum_row .value + .value { display:none; } /* Bestellbedingungen und AGB */ .wpsg_smartcheckout .sc_modul_conditions, .wpsg_smartcheckout .sc_agb, .wpsg_smartcheckout .wpsg-review-remind { margin-top:calc(1.1 * var(--sc-u, 1rem)); font-size:calc(0.85 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_modul_conditions .wpsg_agb + .wpsg_agb { margin-top:calc(0.6 * var(--sc-u, 1rem)); } /* Die Module setzen den Text als losen Textknoten ins label — Flex würde ihn zerreißen */ .wpsg_smartcheckout .sc_modul_conditions label, .wpsg_smartcheckout .sc_agb label, .wpsg_smartcheckout .wpsg-review-remind label { display:block; position:relative; padding-left:calc(1.5 * var(--sc-u, 1rem)); cursor:pointer; } .wpsg_smartcheckout .sc_modul_conditions label > input[type="checkbox"], .wpsg_smartcheckout .sc_agb label > input[type="checkbox"], .wpsg_smartcheckout .wpsg-review-remind label > input[type="checkbox"] { position:absolute; left:0; top:calc(0.15 * var(--sc-u, 1rem)); margin:0; } .wpsg_smartcheckout .sc_modul_conditions .wpsg_mod_ordercondition_hint { max-height:calc(9 * var(--sc-u, 1rem)); overflow-y:auto; margin-top:calc(0.5 * var(--sc-u, 1rem)); padding:calc(0.6 * var(--sc-u, 1rem)); border:1px solid var(--sc-line-soft); border-radius:var(--sc-radius); } /* Fehlerhafte Eingaben */ .wpsg_smartcheckout .sc_field.sc_invalid .sc_input, .wpsg_smartcheckout .sc_invalid.sc_voucher_input { border-color:var(--sc-error); } .wpsg_smartcheckout .sc_choices.sc_invalid, .wpsg_smartcheckout .sc_modul_conditions.sc_invalid, .wpsg_smartcheckout .sc_agb.sc_invalid { outline:1px solid var(--sc-error); outline-offset:4px; } /* Buttons erben Schrift und Farbe des Themes und bleiben bewusst schlicht */ .wpsg_smartcheckout .sc_button { display:inline-flex; align-items:center; justify-content:center; padding:calc(0.65 * var(--sc-u, 1rem)) calc(1.1 * var(--sc-u, 1rem)); border:1px solid var(--sc-accent); border-radius:var(--sc-radius); background:none; color:inherit; font:inherit; cursor:pointer; } .wpsg_smartcheckout .sc_button:hover { background:var(--sc-flat); } .wpsg_smartcheckout .sc_button:disabled { opacity:0.5; cursor:default; } .wpsg_smartcheckout .sc_button_secondary { padding:calc(0.5 * var(--sc-u, 1rem)) calc(0.9 * var(--sc-u, 1rem)); border-color:var(--sc-line); font-size:calc(0.9 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_button_order { width:100%; margin-top:calc(1.1 * var(--sc-u, 1rem)); font-weight:600; } .wpsg_smartcheckout .sc_button_edit { width:100%; margin-top:calc(0.5 * var(--sc-u, 1rem)); } /* Ladeanzeige */ .wpsg_smartcheckout .sc_spinner { position:absolute; top:calc(1.25 * var(--sc-u, 1rem)); right:calc(1.25 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_spinner_dot { display:block; width:calc(0.9 * var(--sc-u, 1rem)); height:calc(0.9 * var(--sc-u, 1rem)); border:2px solid var(--sc-line); border-top-color:var(--sc-accent); border-radius:50%; animation:wpsg_sc_spin 0.7s linear infinite; } /* Layer beim Abschicken der Bestellung über der gesamten Seite */ .wpsg_smartcheckout .sc_submitting { position:fixed; top:0; left:0; right:0; bottom:0; z-index:100001; display:flex; align-items:center; justify-content:center; padding:var(--sc-u, 1rem); background-color:rgba(255, 255, 255, 0.75); cursor:wait; } .wpsg_smartcheckout .sc_submitting_inner { display:flex; align-items:center; gap:calc(0.75 * var(--sc-u, 1rem)); padding:var(--sc-u, 1rem) calc(1.25 * var(--sc-u, 1rem)); border:1px solid var(--sc-line-soft); border-radius:var(--sc-radius); background-color:#FFFFFF; color:#1d1d1d; box-shadow:0 4px 20px rgba(0, 0, 0, 0.08); } .wpsg_smartcheckout .sc_submitting .sc_spinner_dot { width:calc(1.2 * var(--sc-u, 1rem)); height:calc(1.2 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_label_hidden, .wpsg_smartcheckout .sc_visuallyhidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; } /* GARAN-Gewährleistungslabel */ .wpsg_smartcheckout .sc_garan { text-align:center; margin:var(--sc-u, 1rem) 0; } .wpsg_smartcheckout .sc_garan img { display:block; max-width:100%; height:auto; } .wpsg_smartcheckout .sc_product_garan { margin-top:calc(0.5 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .wpsg_product_garan_wrap { margin-bottom:calc(0.5 * var(--sc-u, 1rem)); } .wpsg_smartcheckout .sc_garan_zoom { display:inline-block; padding:0; border:0; background:none; cursor:zoom-in; } .wpsg_smartcheckout .sc_garan_zoom:focus-visible { outline:2px solid currentColor; outline-offset:2px; } .wpsg_smartcheckout .sc_garan_lightbox { cursor:zoom-out; } .wpsg_smartcheckout .sc_garan_lightbox .sc_garan_popup_inner { cursor:default; } .wpsg_smartcheckout .sc_garan_popup { position:fixed; top:0; left:0; right:0; bottom:0; z-index:100000; display:flex; align-items:center; justify-content:center; padding:var(--sc-u, 1rem); background-color:rgba(0, 0, 0, 0.6); } .wpsg_smartcheckout .sc_garan_popup_inner { display:flex; flex-direction:column; max-width:600px; max-height:100%; padding:var(--sc-u, 1rem); text-align:center; background-color:#FFFFFF; } .wpsg_smartcheckout .sc_garan_popup_image { min-height:0; overflow-y:auto; } .wpsg_smartcheckout .sc_garan_popup_image img { max-width:100%; height:auto; } .wpsg_smartcheckout .sc_garan_popup_inner .sc_button { flex:0 0 auto; margin-top:var(--sc-u, 1rem); } .wpsg_smartcheckout .sc_product_revocation { margin-top:calc(0.5 * var(--sc-u, 1rem)); } @keyframes wpsg_sc_spin { to { transform:rotate(360deg); } } @media (prefers-reduced-motion: reduce) { .wpsg_smartcheckout .sc_spinner_dot { animation:none; } .wpsg_smartcheckout .sc_layout.sc_busy { transition:none; } } /* Schmale Ansichten */ @media (max-width: 900px) { .wpsg_smartcheckout .sc_layout { grid-template-columns:minmax(0, 1fr); } .wpsg_smartcheckout .sc_side { position:static; margin-top:var(--sc-gap); } } @media (max-width: 600px) { .wpsg_smartcheckout .sc_choice_hint .wpsg_mod_creditcard { grid-template-columns:minmax(0, 1fr); } .wpsg_smartcheckout .sc_summary { padding:var(--sc-u, 1rem); } .wpsg_smartcheckout .sc_product { padding:calc(0.75 * var(--sc-u, 1rem)); } /* Ohne Produktbild bliebe im Raster eine leere Spalte stehen, deshalb hier Flex */ .wpsg_smartcheckout .sc_product { display:flex; flex-wrap:wrap; align-items:center; gap:calc(0.75 * var(--sc-u, 1rem)) var(--sc-u, 1rem); } .wpsg_smartcheckout .sc_product_image { flex:0 0 auto; } .wpsg_smartcheckout .sc_product_body { flex:1 1 60%; min-width:0; } .wpsg_smartcheckout .sc_product_fields { flex:1 1 100%; } .wpsg_smartcheckout .sc_product_amount { flex:0 0 auto; align-items:flex-start; } .wpsg_smartcheckout .sc_product_price { flex:1 1 auto; } .wpsg_smartcheckout .sc_field_half, .wpsg_smartcheckout .sc_field_wide, .wpsg_smartcheckout .sc_field_narrow { grid-column:span 12; } } /* * Theme "wpshopgermany" (Bootstrap 3) * * Bootstrap setzt html { font-size:10px }, alle Größen des Checkouts würden damit zu klein. Die Modultemplates * des Themes (z.B. Bestellvariablen) bringen Bootstrap-Raster und eigene Auswahlfelder (sto_select) mit, deren * Script im SmartCheckout nicht läuft. */ body.wp-theme-wpshopgermany .wpsg_smartcheckout, body.wp-theme-wpshopgermany .wpsg_smartcheckout_after { --sc-u:15px; } /* #content_wrap hat overflow-x:hidden und wird dadurch zum Scroll-Container, die Zusammenfassung wäre dann nicht mehr sticky. clip schneidet genauso ab, ohne Scroll-Container */ body.wp-theme-wpshopgermany #content_wrap { overflow-x:clip; overflow-y:visible; } body.wp-theme-wpshopgermany .wpsg_smartcheckout label { max-width:none; margin-bottom:0; font-weight:inherit; } body.wp-theme-wpshopgermany .wpsg_smartcheckout .sc_title { letter-spacing:normal; } body.wp-theme-wpshopgermany .wpsg_smartcheckout .sc_modul_extra .row { margin-left:0; margin-right:0; } body.wp-theme-wpshopgermany .wpsg_smartcheckout .sc_modul_extra .row { margin-bottom:0; } body.wp-theme-wpshopgermany .wpsg_smartcheckout .sc_modul_extra .row + .row { margin-top:calc(0.9 * var(--sc-u)); } body.wp-theme-wpshopgermany .wpsg_smartcheckout .sc_modul_extra [class*="col-"] { float:none; width:auto; padding-left:0; padding-right:0; } body.wp-theme-wpshopgermany .wpsg_smartcheckout .sc_modul_extra .sto_col_label { margin-bottom:calc(0.3 * var(--sc-u)); } body.wp-theme-wpshopgermany .wpsg_smartcheckout .sc_modul_extra .sto_col_label label { font-size:calc(0.85 * var(--sc-u)); opacity:0.7; } body.wp-theme-wpshopgermany .wpsg_smartcheckout .sto_select select { display:block; } /* Bestellbedingungen des Themes: Checkbox steht neben dem label (nicht darin), die Regeln für .sc_modul_conditions label würden sie überdecken */ body.wp-theme-wpshopgermany .wpsg_smartcheckout .sto_checkbox_wrap { display:flex; align-items:flex-start; gap:calc(0.5 * var(--sc-u)); } body.wp-theme-wpshopgermany .wpsg_smartcheckout .sto_checkbox_wrap .sto_checkbox { float:none; flex:0 0 auto; padding:0; line-height:normal; } body.wp-theme-wpshopgermany .wpsg_smartcheckout .sto_checkbox_wrap .sto_checkbox input[type="checkbox"] { position:static; width:auto; height:auto; margin:calc(0.15 * var(--sc-u)) 0 0 0; line-height:normal; vertical-align:top; } body.wp-theme-wpshopgermany .wpsg_smartcheckout .sto_checkbox_wrap label { display:block; position:static; flex:1 1 auto; min-width:0; padding-left:0; } body.wp-theme-wpshopgermany .wpsg_smartcheckout .sto_select .click, body.wp-theme-wpshopgermany .wpsg_smartcheckout .sto_select .layer { display:none; }