/* Page content written with WordPress blocks — same look as the pages had before (editorial sections,
   columns, blurbs, accordions, buttons), plus the theme's own contact form. */

.cp-blocks{display:block}
.cp-blocks>:first-child{margin-top:0}
.cp-blocks>.cp-editorial-section:first-child{padding-top:0}

/* Sections and columns */
.cp-blocks .cp-editorial-section>:last-child{margin-bottom:0}
.cp-blocks .wp-block-columns.cp-content-row{gap:36px;align-items:flex-start;margin:0 0 30px}
.cp-blocks .wp-block-columns.cp-content-row:last-child{margin-bottom:0}
.cp-blocks .wp-block-column{min-width:0}
.cp-blocks .wp-block-column>:last-child{margin-bottom:0}
.cp-blocks .wp-block-column:has(>.cp-content-blurb){align-self:stretch}

/* Text */
.cp-blocks.cp-prose .wp-block-heading{text-wrap:balance}
.cp-blocks .wp-block-separator{border:0;border-top:1px solid var(--cp-line);margin:30px 0;opacity:1}
.cp-blocks .wp-block-quote{margin:0 0 20px;padding:25px;background:var(--cp-paper);font-size:15px;border-left:3px solid var(--cp-orange)}
.cp-blocks .wp-block-quote>:last-child{margin-bottom:0}
.cp-blocks .wp-block-quote cite{display:block;margin-top:15px;color:var(--cp-muted);font-size:12px;font-style:normal}
.cp-blocks .wp-block-table{margin:10px 0 25px;overflow-x:auto}
.cp-blocks .wp-block-table table{width:100%;border-collapse:collapse}
.cp-blocks .wp-block-table thead{border-bottom:2px solid var(--cp-line)}
.cp-blocks .wp-block-table td,.cp-blocks .wp-block-table th{border:0;border-bottom:1px solid var(--cp-line)}

/* Images */
.cp-blocks .wp-block-image{margin:0 0 24px}
.cp-blocks .wp-block-image img,.cp-blocks.cp-prose .wp-block-image img{display:block;width:auto;max-width:100%;height:auto;max-height:540px;margin:0 auto;border-radius:4px}
.cp-blocks .wp-block-image figcaption{margin-top:10px;font-size:13px;color:var(--cp-muted);text-align:center}
.cp-blocks .wp-block-image.cp-page-figure{margin:40px 0}
.cp-blocks .wp-block-image.cp-page-figure img,.cp-blocks.cp-prose .wp-block-image.cp-page-figure img{width:100%;max-height:none;aspect-ratio:21/9;object-fit:cover;border-radius:0}
.cp-blocks .wp-block-image.cp-page-figure figcaption{margin:0;text-align:left;color:#fff}
.cp-blocks .cp-content-gallery img,.cp-blocks.cp-prose .cp-content-gallery img{max-height:none;margin:0}
.cp-blocks .cp-carousel img,.cp-blocks.cp-prose .cp-carousel img{max-height:none;margin:0;border-radius:0;width:100%}
.cp-blocks .cp-carousel figcaption{line-height:1.6}
.cp-blocks .cp-carousel figcaption strong{line-height:1.3}
.cp-content-gallery a{display:block;border-radius:3px;overflow:hidden;cursor:zoom-in}
.cp-content-gallery a img{transition:transform 400ms var(--cp-ease)}
@media(hover:hover){.cp-content-gallery a:hover img{transform:scale(1.04)}}

/* Videos */
.cp-blocks .wp-block-embed{margin:10px 0 28px}
.cp-blocks .wp-block-embed iframe{width:100%;height:auto;aspect-ratio:16/9;border:0;border-radius:4px;display:block;background:#111}
.cp-blocks .wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper::before{display:none}
.cp-blocks .wp-block-embed.wp-has-aspect-ratio iframe{position:static}
.cp-blocks .wp-block-video{margin:10px 0 28px}
.cp-blocks .wp-block-video video{width:100%;border-radius:4px;background:#111}

/* Blurbs and cards */
.cp-blocks .cp-content-blurb,.cp-blocks .is-style-cp-card{padding:28px;background:var(--cp-paper);border:1px solid var(--cp-line);height:100%;border-radius:4px}
.cp-blocks .cp-content-blurb>:last-child,.cp-blocks .is-style-cp-card>:last-child{margin-bottom:0}
.cp-blocks .cp-content-blurb>h3:first-child{font-size:23px;margin:0 0 17px}
.cp-blocks .cp-content-blurb>h4{font-size:17px;margin:0 0 10px}
.cp-blocks .wp-block-columns.cp-content-row:has(.cp-content-blurb){align-items:stretch}

/* Accordions (details block) */
.cp-blocks .cp-accordions{margin:0 0 30px}
.cp-blocks .cp-accordions:last-child{margin-bottom:0}
.cp-blocks .wp-block-details.cp-disclosure{margin:0}
.cp-blocks .wp-block-details.cp-disclosure>summary{cursor:pointer}
.cp-blocks .wp-block-details.cp-disclosure>summary:focus-visible{outline:2px solid var(--cp-orange);outline-offset:3px}
.cp-blocks .cp-disclosure>.cp-prose>:last-child{margin-bottom:0}
.cp-blocks .cp-disclosure>.cp-prose .wp-block-image img{margin:10px 0}

/* Buttons */
.cp-blocks .wp-block-buttons{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}
.cp-blocks .wp-block-button{margin:0}
.cp-blocks .wp-block-button__link,.cp-blocks.cp-prose .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:16px;border:1px solid var(--cp-line);border-radius:3px;background:transparent;color:var(--cp-ink);padding:14px 22px;font-size:14px;line-height:1.5;font-weight:650;text-decoration:none;transition:background-color 160ms ease,color 160ms ease,border-color 160ms ease}
.cp-blocks .wp-block-button:not(.is-style-outline) .wp-block-button__link{background:var(--cp-orange);border-color:var(--cp-orange)}
.cp-blocks .wp-block-button__link::after{content:"";flex:0 0 17px;width:17px;height:17px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16m-6-6 6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16m-6-6 6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat}
@media(hover:hover){.cp-blocks .wp-block-button__link:hover{background:var(--cp-ink);border-color:var(--cp-ink);color:#fff}}
.cp-blocks .wp-block-button__link:focus-visible{outline:2px solid var(--cp-orange);outline-offset:2px}
/* Sub-page navigation (left column on the solution pages) */
.cp-blocks .cp-button-stack{flex-direction:column;align-items:stretch;gap:8px;margin:0;position:sticky;top:120px}
.cp-blocks .cp-button-stack .wp-block-button__link{width:100%;justify-content:space-between;padding:13px 16px;font-size:13px;text-align:left;background:#fff}
.cp-blocks .cp-button-stack .wp-block-button.is-current .wp-block-button__link{background:var(--cp-ink);border-color:var(--cp-ink);color:#fff}
.cp-blocks .cp-button-stack .wp-block-button__link:hover,.cp-blocks .cp-button-stack .wp-block-button__link:focus-visible{background:var(--cp-ink);border-color:var(--cp-ink);color:#fff}
.cp-blocks .cp-button-stack .wp-block-button.is-current .wp-block-button__link::after{transform:rotate(90deg)}

/* Stats */
.cp-blocks .cp-stat>p{margin:0}
.cp-blocks .cp-stat-number strong{display:block;font-size:58px;font-weight:600;color:#a35c09;line-height:1.2}
.cp-blocks .cp-stat-label{font-size:12px;letter-spacing:1px}

/* Contact forms ([cp_form]) */
.cp-form-wrap{scroll-margin-top:140px}
.cp-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.cp-field{margin:0;min-width:0;border:0;padding:0}
.cp-field--full{grid-column:1/-1}
.cp-field>label,.cp-field>legend{display:block;font-size:13px;font-weight:650;color:var(--cp-ink);margin-bottom:7px;line-height:1.4;padding:0}
.cp-req{color:#b4540a}
.cp-optional{font-weight:400;color:var(--cp-muted);font-size:12px}
.cp-form input[type=text],.cp-form input[type=email],.cp-form input[type=tel],.cp-form textarea,.cp-form select{width:100%;background:#fafaf8;border:1px solid #cfd4d3;border-radius:3px;padding:13px 15px;font:inherit;font-size:15px;line-height:1.4;color:var(--cp-ink);transition:border-color 150ms ease,box-shadow 150ms ease}
.cp-form textarea{min-height:155px;resize:vertical}
.cp-form input:focus,.cp-form textarea:focus,.cp-form select:focus{outline:0;border-color:var(--cp-ink);box-shadow:0 0 0 3px rgba(253,161,43,.35);background:#fff}
.cp-field.has-error input,.cp-field.has-error textarea,.cp-field.has-error select{border-color:#b3261e}
.cp-field.has-error>legend,.cp-field.has-error>label,.cp-field.has-error .cp-check{color:#9d251f}
.cp-choices{display:flex;flex-wrap:wrap;gap:10px 22px}
.cp-check{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;cursor:pointer;color:var(--cp-ink)}
.cp-field--checkbox .cp-check{font-size:13px;color:var(--cp-muted)}
.cp-check input{flex:0 0 auto;width:18px;height:18px;margin:2px 0 0;accent-color:var(--cp-ink)}
.cp-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.cp-form-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;flex-wrap:wrap}
.cp-form-note{margin:0!important;font-size:12px;color:var(--cp-muted)}
.cp-form-foot .cp-button{min-width:160px}
.cp-form-notice{border-radius:4px;padding:16px 20px;margin:0 0 22px;font-size:14px;line-height:1.6}
.cp-form-notice p{margin:0!important}
.cp-form-notice ul{margin:8px 0 0!important;padding-left:20px!important}
.cp-form-notice.is-error{background:#fcefee;border:1px solid #f0c5c1;color:#7d1d17}
.cp-form-notice.is-success{display:flex;align-items:center;gap:14px;background:#eef6ee;border:1px solid #c7e1c8;color:#1e4d24;font-size:15px;font-weight:600;padding:22px 24px}
.cp-form-notice.is-success .cp-icon{flex:0 0 26px;width:26px;height:26px;color:#2d7a35}
.cp-form-notice:focus{outline:0}
/* Contact / partner page: title and text on the left, form on the right */
.cp-blocks .cp-editorial-section:has(>.cp-form-wrap){display:grid;grid-template-columns:300px minmax(0,1fr);grid-template-rows:repeat(11,auto) 1fr;gap:0 70px;align-items:start}
.cp-blocks .cp-editorial-section:has(>.cp-form-wrap)>*{grid-column:1}
.cp-blocks .cp-editorial-section:has(>.cp-form-wrap)>.cp-form-wrap{grid-column:2;grid-row:1/-1}
.cp-blocks .cp-editorial-section:has(>.cp-form-wrap)>p:last-child{font-size:13px;overflow-wrap:anywhere}

@media(max-width:900px){
  .cp-blocks .cp-editorial-section:has(>.cp-form-wrap){grid-template-columns:210px minmax(0,1fr);gap:0 30px}
  .cp-blocks .wp-block-columns.cp-content-row{gap:24px}
  .cp-blocks .cp-stat-number strong{font-size:45px}
}
@media(max-width:781px){
  .cp-blocks .wp-block-columns.cp-content-row{flex-direction:column;align-items:stretch;gap:25px}
  .cp-blocks .wp-block-columns.cp-content-row>.wp-block-column{flex-basis:auto!important;width:100%}
  .cp-blocks .cp-button-stack{position:static;flex-direction:row;flex-wrap:wrap}
  .cp-blocks .cp-button-stack .wp-block-button{flex:1 1 calc(50% - 8px)}
}
@media(max-width:640px){
  .cp-blocks .cp-editorial-section:has(>.cp-form-wrap){display:block}
  .cp-blocks .cp-editorial-section:has(>.cp-form-wrap)>.cp-form-wrap{margin:10px 0 25px}
  .cp-form-grid{grid-template-columns:1fr}
  .cp-form-foot{flex-direction:column-reverse;align-items:stretch}
  .cp-form-foot .cp-button{width:100%}
  .cp-blocks .wp-block-image img,.cp-blocks.cp-prose .wp-block-image img{max-height:360px}
  .cp-blocks .wp-block-image.cp-page-figure{margin:28px 0}
  .cp-blocks .wp-block-image.cp-page-figure img,.cp-blocks.cp-prose .wp-block-image.cp-page-figure img{aspect-ratio:4/3}
  .cp-blocks .cp-content-blurb,.cp-blocks .is-style-cp-card{padding:24px}
  .cp-blocks .cp-button-stack .wp-block-button{flex-basis:100%}
  .cp-blocks .wp-block-button__link{width:100%;justify-content:space-between}
}
.cp-prose .cp-content-gallery img{margin:0;max-height:none}
/* Lightbox: title bar and thumbnail strip keep their full height; only the photo area shrinks on short screens. */
.cp-lightbox-bar,.cp-lightbox-thumbs{flex-shrink:0}
.cp-lightbox-thumbs{overflow-y:hidden;scrollbar-width:thin}
.cp-lightbox-stage{flex:1 1 auto;min-height:0}
/* Form checkboxes and radios in the site's style; consent next to the submit button */
.cp-form .cp-field>label.cp-check,.cp-form .cp-check{display:flex;align-items:flex-start;gap:12px;margin:0;font-weight:400;font-size:14px;line-height:1.55;color:var(--cp-ink);cursor:pointer}
.cp-form .cp-check input{-webkit-appearance:none;appearance:none;flex:0 0 20px;width:20px;height:20px;margin:1px 0 0;border:1.5px solid #aab1b1;border-radius:4px;background:#fff;display:grid;place-content:center;cursor:pointer;transition:background-color 150ms ease,border-color 150ms ease,box-shadow 150ms ease}
.cp-form .cp-check input[type=radio]{border-radius:50%}
.cp-form .cp-check input::before{content:"";width:11px;height:11px;transform:scale(0);transition:transform 150ms var(--cp-ease);background:var(--cp-ink);clip-path:polygon(14% 44%,0 60%,40% 100%,100% 22%,86% 8%,38% 70%)}
.cp-form .cp-check input[type=radio]::before{width:8px;height:8px;border-radius:50%;clip-path:none}
.cp-form .cp-check input:checked{background:var(--cp-orange);border-color:var(--cp-orange)}
.cp-form .cp-check input:checked::before{transform:scale(1)}
.cp-form .cp-check input:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(253,161,43,.4)}
.cp-form .cp-check:hover input{border-color:var(--cp-ink)}
.cp-form .has-error .cp-check input{border-color:#b3261e}
.cp-form-foot{align-items:center;border-top:1px solid var(--cp-line);padding-top:22px}
.cp-form-foot-text{display:flex;flex-direction:column;gap:8px;flex:1 1 320px;min-width:0}
.cp-form-foot .cp-field--consent{margin:0}
.cp-form-foot .cp-field--consent .cp-check{font-size:13px;color:#363e47}
.cp-form-foot .cp-form-note{padding-left:32px}
@media(max-width:640px){.cp-form-foot{flex-direction:column;align-items:stretch}.cp-form-foot-text{flex-basis:auto}}
/* Favourites counter: digits centred optically (tabular figures centre the „1”), white ring separates it from the heart */
.cp-fav-link .cp-fav-badge{top:3px;right:-3px;min-width:19px;height:19px;padding:0 5px;box-sizing:border-box;border-radius:10px;box-shadow:0 0 0 2px #fff;font-size:10px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1;display:inline-flex;align-items:center;justify-content:center;text-align:center;letter-spacing:0}
.cp-fav-link .cp-fav-badge.is-empty{display:none}
