/* Styles scoped to the book contact block; no external fonts, trackers or dependencies. */
.sbl-purchase-contact, .sbl-contact, .sbl-modal {
  --sbl-ink:#302b28; --sbl-burgundy:#78251c; --sbl-gold:#ac7a31;
  --sbl-paper:#f7ecd7; --sbl-line:#d5b477;
  font-family: Georgia, "Times New Roman", serif; color:var(--sbl-ink);
  font-size:18px; line-height:1.5; text-align:left;
}
.sbl-purchase-contact *, .sbl-contact *, .sbl-modal * { box-sizing:border-box; }
.sbl-purchase-contact { width:100%; max-width:1080px; margin:0 auto; }
.sbl-shops { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:0; padding:0; }
.sbl-shops a.sbl-shop {
  display:flex; align-items:center; gap:15px; min-height:86px; padding:17px 20px;
  border:1px solid var(--sbl-gold); border-radius:9px; color:var(--sbl-ink); text-decoration:none;
  background:linear-gradient(150deg,#fff7e8,#f0dfba); box-shadow:0 3px 0 #b98b4326,0 6px 16px #6849190b;
  transition:background-color .15s,box-shadow .15s,transform .15s; text-align:left;
}
.sbl-shop > svg:first-child { width:30px; height:30px; flex:0 0 30px; color:var(--sbl-gold); }
.sbl-shop > svg:last-child { margin-left:auto; flex:0 0 19px; width:19px; height:19px; color:var(--sbl-gold); }
.sbl-shop small { display:block; font:normal 14px/1.25 Georgia,"Times New Roman",serif; letter-spacing:.03em; }
.sbl-shop strong { display:block; font:600 clamp(19px,2.2vw,25px)/1.2 Georgia,"Times New Roman",serif; margin-top:4px; white-space:nowrap; }
.sbl-shops a.sbl-shop--mondadori strong, .sbl-shops a.sbl-shop--feltrinelli strong { color:var(--sbl-burgundy); }
.sbl-shops a.sbl-shop:hover { transform:translateY(-2px); box-shadow:0 5px 0 #b98b4326,0 7px 22px #6849191a; }
.sbl-contact-action { display:flex; justify-content:center; width:100%; margin:26px auto 0; }
.sbl-contact-button, .sbl-modal .sbl-submit {
  appearance:none; display:inline-flex; align-items:center; justify-content:center; gap:12px;
  min-height:54px; padding:12px 32px; border:1px solid var(--sbl-gold); border-radius:7px;
  background:linear-gradient(110deg,#842b20,#662016); color:#fff5e1;
  box-shadow:0 3px 12px #66201618, inset 0 0 0 3px #fff7dc09; cursor:pointer;
  font:normal 20px/1.3 Georgia,"Times New Roman",serif; letter-spacing:.01em; text-decoration:none;
  transition:box-shadow .15s,background-color .15s,transform .15s;
}
.sbl-contact-button { min-width:250px; }
.sbl-contact-button svg { width:22px; height:22px; flex:0 0 22px; }
.sbl-contact-button:hover, .sbl-modal .sbl-submit:hover { background:#5d1a13; box-shadow:0 5px 18px #66201628; }
.sbl-contact-button:focus-visible, .sbl-shop:focus-visible, .sbl-modal button:focus-visible,
.sbl-modal a:focus-visible, .sbl-modal input:focus-visible, .sbl-modal textarea:focus-visible {
  outline:3px solid #8b5520; outline-offset:4px;
}
.sbl-modal[hidden] { display:none !important; }
.sbl-modal {
  position:fixed; z-index:2147483000; inset:0; display:flex; align-items:center; justify-content:center;
  width:100%; height:100%; padding:20px; isolation:isolate;
}
.sbl-modal-backdrop { position:absolute; inset:0; z-index:-1; background:#29231dcc; backdrop-filter:blur(4px); }
.sbl-modal-panel {
  position:relative; width:100%; max-width:590px; max-height:calc(100vh - 40px); max-height:calc(100dvh - 40px);
  overflow:auto; overscroll-behavior:contain; margin:0; padding:34px 38px 30px;
  background:radial-gradient(ellipse at top,#fffaf0 0%,#f7ecd7 100%); border:1px solid #ba8e46;
  border-radius:12px; box-shadow:0 18px 80px #0005,inset 0 0 0 5px #d4b27026;
}
.sbl-modal .sbl-close {
  position:absolute; right:10px; top:10px; display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; padding:10px; border:0; border-radius:50%;
  color:#72552f; background:transparent; cursor:pointer;
}
.sbl-modal .sbl-close:hover { background:#cda86b30; }
.sbl-modal-heading { text-align:center; margin:0 0 22px; padding:0 14px 20px; border-bottom:1px solid #d5b4778f; }
.sbl-modal-heading .sbl-envelope { display:flex; align-items:center; justify-content:center; width:46px; height:46px; margin:0 auto 12px; border:1px solid #ccaa67; border-radius:50%; color:var(--sbl-gold); }
.sbl-modal .sbl-modal-heading h2 { margin:0 0 9px; padding:0; font:normal 34px/1.1 Georgia,"Times New Roman",serif; color:var(--sbl-burgundy); letter-spacing:0; text-transform:none; }
.sbl-modal .sbl-modal-heading p { margin:0; padding:0; font:italic 17px/1.45 Georgia,"Times New Roman",serif; color:#665440; }
.sbl-mobile-break { display:none; }
.sbl-modal .sbl-form { margin:0; padding:0; }
.sbl-modal .wpcf7 form { margin:0; padding:0; }
.sbl-modal .sbl-required-note { margin:0 0 17px; font:normal 13px/1.4 system-ui,sans-serif; color:#6b6054; }
.sbl-modal .sbl-field { margin:0 0 17px; }
.sbl-modal .sbl-field p, .sbl-modal .sbl-privacy p, .sbl-modal .sbl-submit-row p { margin:0; padding:0; }
.sbl-modal .sbl-field label { display:block; margin:0; padding:0; font:normal 17px/1.45 Georgia,"Times New Roman",serif; color:var(--sbl-ink); }
.sbl-modal .sbl-field label > br { display:none; }
.sbl-modal .wpcf7-form-control-wrap { display:block; margin-top:6px; }
.sbl-modal .sbl-field input, .sbl-modal .sbl-field textarea {
  display:block; width:100%; max-width:100%; height:auto; min-height:47px; margin:0;
  padding:11px 13px; border:1px solid #cdb791; border-radius:5px;
  background:#fffcf7; color:#302b28; font:normal 16px/1.5 system-ui,sans-serif; box-shadow:none;
}
.sbl-modal .sbl-field textarea { min-height:120px; max-height:280px; resize:vertical; }
.sbl-modal .sbl-field input::placeholder, .sbl-modal .sbl-field textarea::placeholder { color:#857665; opacity:1; font-size:15px; }
.sbl-modal .sbl-field-hint { display:block; margin-top:5px; font:normal 12px/1.4 system-ui,sans-serif; color:#6b6054; }
.sbl-modal .sbl-privacy { margin:16px 0 21px; font:normal 13px/1.6 system-ui,sans-serif; color:#554738; }
.sbl-modal .sbl-privacy .wpcf7-list-item { margin:0; }
.sbl-modal .sbl-privacy label { display:flex; align-items:flex-start; gap:9px; }
.sbl-modal .sbl-privacy input[type=checkbox] { appearance:auto; flex:0 0 18px; width:18px; height:18px; margin:2px 0 0; accent-color:var(--sbl-burgundy); }
.sbl-modal a { color:#7d3920; text-decoration:underline; text-underline-offset:3px; }
.sbl-modal .sbl-submit-row { position:relative; text-align:center; margin:0; }
.sbl-modal .sbl-submit { width:100%; font-size:18px; }
.sbl-modal .sbl-submit:disabled { cursor:wait; opacity:.65; }
.sbl-modal .wpcf7-spinner { position:absolute; margin:0; inset:auto 12px 15px auto; }
.sbl-modal .wpcf7-not-valid-tip { display:block; color:#a02f22; font:normal 13px/1.5 system-ui,sans-serif; margin:6px 0 0; }
.sbl-modal [aria-invalid=true] { border-color:#a02f22 !important; }
.sbl-modal .wpcf7-response-output {
  margin:18px 0 0 !important; padding:12px 14px !important; border:1px solid #b78a44 !important;
  border-radius:5px; font:normal 14px/1.5 system-ui,sans-serif; color:#3c3125; background:#fff9ed;
}
.sbl-modal .wpcf7 form.init .wpcf7-response-output, .sbl-modal .wpcf7 form.submitting .wpcf7-response-output { display:none; }
.sbl-modal .sbl-unavailable, .sbl-modal .sbl-admin-hint { margin:18px 0; font-size:16px; text-align:center; }
.sbl-modal .sbl-admin-hint { font-size:14px; }
.sbl-nojs { font-size:14px; text-align:center; margin:10px 0; }
.sbl-sr-only, .sbl-trap, .sbl-modal .screen-reader-response {
  position:absolute !important; width:1px !important; height:1px !important; margin:-1px !important;
  overflow:hidden !important; clip:rect(0,0,0,0) !important; clip-path:inset(50%); white-space:nowrap !important; border:0 !important; padding:0 !important;
}
@media(max-width:700px) {
  .sbl-shops { gap:12px; }
  .sbl-shops a.sbl-shop { gap:9px; padding:14px 12px; }
  .sbl-shop > svg:first-child { display:none; }
  .sbl-shop strong { font-size:20px; }
}
@media(max-width:560px) {
  .sbl-shops { grid-template-columns:1fr; gap:12px; }
  .sbl-shops a.sbl-shop { padding:13px 18px; min-height:73px; }
  .sbl-shop > svg:first-child { display:block; width:27px; flex-basis:27px; margin-right:5px; }
  .sbl-shop strong { font-size:23px; }
  .sbl-contact-action { margin-top:23px; }
  .sbl-contact-button { width:100%; max-width:300px; padding:13px 24px; }
  .sbl-modal { padding:12px; }
  .sbl-modal-panel { padding:27px 22px 24px; max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); }
  .sbl-modal-heading { padding:0 14px 17px; margin-bottom:18px; }
  .sbl-modal .sbl-modal-heading h2 { font-size:30px; }
  .sbl-modal .sbl-modal-heading p { font-size:16px; }
  .sbl-mobile-break { display:block; }
  .sbl-modal-heading .sbl-envelope { margin-bottom:10px; width:40px; height:40px; }
  .sbl-modal .sbl-field { margin-bottom:14px; }
}
@media(prefers-reduced-motion:reduce) {
  .sbl-shop, .sbl-contact-button, .sbl-modal .sbl-submit { transition:none !important; transform:none !important; }
}
