/* START: GENERAL TYPO3 CONTENT AND CUSTOM LAYOUTS */

.ap-theme-card, .frame-layout-ap-theme-card {
    box-sizing: border-box;          /* include padding/border in width */
    border: 1px solid #f0f0f0;          /* example border, optional */
    
    /*background-color: #f9f9f9;  */    /* optional background */

    /* Default subtle shadow */
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.09);

    
    
    /* Smooth transition for shadow changes */
    transition: box-shadow 0.3s cubic-bezier(.4, 0, .2, 1);
    border-radius:10px;
    background-color:rgba(255, 255, 255, 0.8);
}

.ap-theme-card:hover, .frame-layout-ap-theme-card:hover {
  box-shadow: 0px 3px 7px 0px rgba(0, 0, 0, 0.14), 0 4px 6px -4px rgba(0, 0, 0, 0.14);
}

.frame-layout-ap-theme-card .row-layout-ap-theme-card {
  line-height:1;
  padding-top:15px;
  padding-bottom:15px;

}

.frame-layout-ap-theme-card .row-layout-ap-theme-card p {
  margin-bottom: 0px;
}

iframe {
  max-width: 100%;                     /* or any width you want */
  width:1248px;                    /* or any width you want */  
  aspect-ratio: 1248 / 785;        /* keeps height proportional */
  height: auto;                    /* automatically calculated from width */
  border: 0;                       /* optional, cleaner look */
  display: block;                  /* removes inline spacing */
}

.main-content img {
    max-width:100%;
    height:auto;
}

/* Define space before and after */
.main-content .frame-space-before-extra-small {
  padding-top:5px;
  margin-top:5px;
}

.main-content .frame-space-after-extra-small {
  padding-bottom:5px;
  margin-bottom:5px;
}

.main-content .frame-type-textmedia.frame-layout-ap-theme-card .ce-bodytext {
  padding:24px;
}

.main-content .frame-type-textmedia.frame-layout-ap-theme-card .ce-gallery {
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}

/* Spinners and loaders */
.submit-spinner {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid currentColor;
    border-bottom-color: transparent;
    animation: spin .6s linear infinite;
    display: inline-block;
}


@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Full-page overlay */
#full-page-loader {
    position: fixed;
    inset: 0;
    z-index: 999999;
    background: rgba(0, 0, 0, 0.85);
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease;
}

/* Active state */
#full-page-loader.active {
    opacity: 1;
    pointer-events: all;
}

/* Loader content */
#full-page-loader .loader-content {
    text-align: center;
    color: rgb(0, 54, 112);
    max-width: 320px;
    background-color: white;
    border-radius: 12px;
    padding: 20px;
    max-width: 95%;
}

/* Message text */
#full-page-loader .loader-content p {
    margin-top: 16px;
    font-size: 1.1rem;
}

/* Block body scroll */
body.loader-active {
    overflow: hidden;
}


@media (min-width: 1200px) {

  .ap-theme-card {
    aspect-ratio:auto;
  }
}