/* ============================================================================================= */
/* ============================================================================================= */
html{height:100%;}
body {height: 100%; margin:0; display:flex; flex-direction:column; background-attachment: fixed; background-repeat: no-repeat;}
/* ============================================================================================= */
#content{flex: 1 0 auto;}
#footer{flex-shrink: none;}
*{box-sizing: border-box;}

/* [ BUBLE ] */

  #bubleContainer {
    width: 99%;
    margin-top:0px;
    position: relative; 
  }
  .bubble {
    width: 34px;   
    border-radius: 50%;
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden; /* Mencegah gambar meluap dari gelembung */
  }
  .bubble img {
    max-width: 100%; /* Memastikan gambar tidak melebihi ukuran gelembung */
    border-radius: 50%; /* Agar gambar juga berbentuk lingkaran */
  }
  
/* [ COLUMN ] */

.column1{
  float: left;
  width: 100%;
}
.column2{
  float: left;
  width: 50%; 
}
.column3{
  float: left;
  width: 33.33%;
}
.column4{
  float: left;
  width: 24.99%;
}
.column5{
  float:left;
  width: 19.99%;
}
.column6{
  float:left;
  width: 16.66%;
}
.column7{
  float: left;
  width: 14.28%;
}
.column8{
  float:left;
  width: 12.49%;
}
.column9{
  float:left;
  width: 11.11%;
}
.column10{
  float:left;
  width: 9.99%;
}

@media screen and (max-width: 850px) {
  .column {
    width: 50%;
    display: block;
    margin-bottom: 2px;
  }
}
@media screen and (max-width: 850px) {
  .column2 {
    width: 50%;
    display: block;
    margin-bottom: 2px;
  }
}
@media screen and (max-width: 850px) {
  .column3 {
    width: 50%;
    display: block;
	margin-bottom: 2px;
  }
}
@media screen and (max-width: 850px) {
  .column4 {
    width: 50%;
    display: block;
	margin-bottom: 2px;
  }
}
@media screen and (max-width: 850px) {
  .column5 {
    width: 49.9%;
    display: block;
	margin-bottom: 2px;
  }
}
@media screen and (max-width: 850px) {
  .column6 {
    width: 50%;
    display: block;
    margin-bottom: 2px;
  }
}
@media screen and (max-width: 850px) {
  .column7 {
    width: 50%;
    display: block;
    margin-bottom: 2px;
  }
}
@media screen and (max-width: 850px) {
  .column8 {
    width: 50%;
    display: block;
    margin-bottom: 2px;
  }
}
@media screen and (max-width: 850px) {
  .column9 {
    width: 50%;
    display: block;
    margin-bottom: 2px;
  }
}
@media screen and (max-width: 850px) {
  .column10 {
    width: 50%;
    display: block;
    margin-bottom: 2px;
  }
}

/* [ TABLE ] */

.tableff { width:100%; border-collapse: collapse; } 
.tableff td, .tableff th { text-align: left; border: 1px solid #eee; } 
.tableff tr:hover { color: salmon; }

.loader {
  height: 20px;
  width: 250px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}
.loader--dot {
  animation-name: loader;
  animation-timing-function: ease-in-out;
  animation-duration: 3s;
  animation-iteration-count: infinite;
  height: 20px;
  width: 20px;
  border-radius: 100%;
  background-color: black;
  position: absolute;
  border: 2px solid white;
}
.loader--dot:first-child {
  background-color: #8cc759;
  animation-delay: 0.5s;
}
.loader--dot:nth-child(2) {
  background-color: #8c6daf;
  animation-delay: 0.4s;
}
.loader--dot:nth-child(3) {
  background-color: #ef5d74;
  animation-delay: 0.3s;
}
.loader--dot:nth-child(4) {
  background-color: #f9a74b;
  animation-delay: 0.2s;
}
.loader--dot:nth-child(5) {
  background-color: #60beeb;
  animation-delay: 0.1s;
}
.loader--dot:nth-child(6) {
  background-color: #fbef5a;
  animation-delay: 0s;
}
.loader--text {
  position: absolute;
  top: 200%;
  left: 0;
  right: 0;
  width: 4rem;
  margin: auto;
}
.loader--text:after {
  content: "Loading";
  font-weight: bold;
  animation-name: loading-text;
  animation-duration: 3s;
  animation-iteration-count: infinite;
}

@keyframes loader {
  15% {
    transform: translateX(0);
  }
  45% {
    transform: translateX(230px);
  }
  65% {
    transform: translateX(230px);
  }
  95% {
    transform: translateX(0);
  }
}
@keyframes loading-text {
  0% {
    content: "Loading";
  }
  25% {
    content: "Loading.";
  }
  50% {
    content: "Loading..";
  }
  75% {
    content: "Loading...";
  }
}

.w3-cursor,.w3-pointer{cursor:pointer}
.w3-text-wide {letter-spacing: 10px;}
.w3-bold{font-weight:bold}
.w3-s{text-decoration: line-through;}
.w3-i{font-style: italic;}
.w3-o{font-style: oblique;}
article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block;}summary{display:list-item}
audio,canvas,progress,video{display:inline-block}progress{vertical-align:baseline}
audio:not([controls]){display:none;height:0}[hidden],template{display:none}
a{text-decoration:none;background-color:transparent}a:active,a:hover{outline-width:0}
abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}
small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sub{bottom:-0.25em}sup{top:-0.5em}figure{margin:1em 40px}img{border-style:none}
code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}
button,input,select,textarea,optgroup{font:inherit;margin:0}
button,input{overflow:visible}button,select{text-transform:none}
button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;appearance:button;}
button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}
button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}
fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}
legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}
[type=checkbox],[type=radio]{padding:0}
[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}
[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}
[type=search]::-webkit-search-decoration{-webkit-appearance:none}
::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
/* End extract */
h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}
hr{border:0;border-top:1px solid #eee;margin:2px 0}

.w3-roman{font-family: "Times New Roman", Times, serif;}
.w3-tahoma{font-family: Tahoma, "Trebuchet MS", sans-serif;}
.w3-mono{font-family: "Courier New", Courier, monospace;}
.w3-comic{font-family: "Comic Sans MS", cursive, sans-serif;}
.w3-georgia{font-family: "Georgia", Times, serif;}

.w3-image{max-width:100%;height:auto}img{vertical-align:middle}a{color:inherit}
.w3-table,.w3-table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.w3-table-all{border:1px solid #ccc}
.w3-bordered tr,.w3-table-all tr{border-bottom:1px solid #ddd}.w3-striped tbody tr:nth-child(even){background-color:#f1f1f1}
.w3-table-all tr:nth-child(odd){background-color:#fff}.w3-table-all tr:nth-child(even){background-color:#f1f1f1}
.w3-hoverable tbody tr:hover,.w3-ul.w3-hoverable li:hover{background-color:#ccc}.w3-centered tr th,.w3-centered tr td{text-align:center}
.w3-table td,.w3-table th,.w3-table-all td,.w3-table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}
.w3-table th:first-child,.w3-table td:first-child,.w3-table-all th:first-child,.w3-table-all td:first-child{padding-left:10px}
.w3-btn,.w3-button{border:none;display:inline-block;padding:8px 16px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap}
.w3-btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}
.w3-btn,.w3-button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}   
.w3-disabled,.w3-btn:disabled,.w3-button:disabled{cursor:not-allowed;opacity:0.3}.w3-disabled *,:disabled *{pointer-events:none}
.w3-btn.w3-disabled:hover,.w3-btn:disabled:hover{box-shadow:none}
.w3-badge,.w3-tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.w3-badge{border-radius:50%}
.w3-ul{list-style-type:none;padding:0;margin:0}.w3-ul li{padding:8px 16px;border-bottom:1px solid #ddd}.w3-ul li:last-child{border-bottom:none}
.w3-tooltip,.w3-display-container{position:relative}.w3-tooltip .w3-text{display:none}.w3-tooltip:hover .w3-text{display:inline-block}
.w3-ripple:active{opacity:0.5}.w3-ripple{transition:opacity 0s}
.w3-input{padding:11px;display:block;border:none;border-bottom:1px solid #ccc;width:100%}
.w3-select{padding:8px;width:100%;border:none;border-bottom:1px solid #ccc}
.w3-dropdown-click,.w3-dropdown-hover{position:relative;display:inline-block;cursor:pointer}
.w3-dropdown-hover:hover .w3-dropdown-content{display:block}
.w3-dropdown-hover:first-child,.w3-dropdown-click:hover{background-color:#ccc;color:#000}
.w3-dropdown-hover:hover > .w3-button:first-child,.w3-dropdown-click:hover > .w3-button:first-child{background-color:#ccc;color:#000}
.w3-dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1}
.w3-radio{width:24px;height:24px;position:relative;top:6px} 
.w3-none{display:none;}

.w3-sidebar{height:100%;width:200px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}
.w3-bar-block .w3-dropdown-hover,.w3-bar-block .w3-dropdown-click{width:100%}
.w3-bar-block .w3-dropdown-hover .w3-dropdown-content,.w3-bar-block .w3-dropdown-click .w3-dropdown-content{min-width:100%}
.w3-bar-block .w3-dropdown-hover .w3-button,.w3-bar-block .w3-dropdown-click .w3-button{width:100%;text-align:left;padding:8px 16px}
.w3-main,#main{transition:margin-left .4s;}
.w3-modal{z-index:4;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)}
.w3-modal-2{z-index:4;display:block;padding-top:0px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,.5)}
.w3-modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:500px}

.w3-bar{width:100%;overflow:hidden}.w3-center .w3-bar{display:inline-block;width:auto}
.w3-bar .w3-bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0}
.w3-bar .w3-dropdown-hover,.w3-bar .w3-dropdown-click{position:static;float:left}
.w3-bar .w3-button{white-space:normal}
.w3-bar-block .w3-bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}
.w3-bar-block.w3-center .w3-bar-item{text-align:center}.w3-block{display:block;width:100%}
.w3-responsive{display:block;overflow-x:auto}
.w3-container:after,.w3-container:before,.w3-panel:after,.w3-panel:before,.w3-row:after,.w3-row:before,.w3-row-padding:after,.w3-row-padding:before,
.w3-cell-row:before,.w3-cell-row:after,.w3-clear:after,.w3-clear:before,.w3-bar:before,.w3-bar:after{content:"";display:table;clear:both}
.w3-col,.w3-half,.w3-third,.w3-twothird,.w3-threequarter,.w3-quarter{float:left;width:100%}
.w3-col.s1{width:8.33333%}.w3-col.s2{width:16.66666%}.w3-col.s3{width:24.99999%}.w3-col.s4{width:33.33333%}
.w3-col.s5{width:41.66666%}.w3-col.s6{width:49.99999%}.w3-col.s7{width:58.33333%}.w3-col.s8{width:66.66666%}
.w3-col.s9{width:74.99999%}.w3-col.s10{width:83.33333%}.w3-col.s11{width:91.66666%}.w3-col.s12{width:99.99999%}
@media (min-width:601px){.w3-col.m1{width:8.33333%}.w3-col.m2{width:16.66666%}.w3-col.m3,.w3-quarter{width:24.99999%}.w3-col.m4,.w3-third{width:33.33333%}
.w3-col.m5{width:41.66666%}.w3-col.m6,.w3-half{width:49.99999%}.w3-col.m7{width:58.33333%}.w3-col.m8,.w3-twothird{width:66.66666%}
.w3-col.m9,.w3-threequarter{width:74.99999%}.w3-col.m10{width:83.33333%}.w3-col.m11{width:91.66666%}.w3-col.m12{width:99.99999%}}
@media (min-width:993px){.w3-col.l1{width:8.33333%}.w3-col.l2{width:16.66666%}.w3-col.l3{width:24.99999%}.w3-col.l4{width:33.33333%}
.w3-col.l5{width:41.66666%}.w3-col.l6{width:49.99999%}.w3-col.l7{width:58.33333%}.w3-col.l8{width:66.66666%}
.w3-col.l9{width:74.99999%}.w3-col.l10{width:83.33333%}.w3-col.l11{width:91.66666%}.w3-col.l12{width:99.99999%}}
.w3-rest{overflow:hidden}.w3-stretch{margin-left:-16px;margin-right:-16px}
.w3-content,.w3-auto{margin-left:auto;margin-right:auto}.w3-content{max-width:980px}.w3-auto{max-width:1140px}
.w3-cell-row{display:table;width:100%}.w3-cell{display:table-cell}
.w3-cell-top{vertical-align:top}.w3-cell-middle{vertical-align:middle}.w3-cell-bottom{vertical-align:bottom}
.w3-hide{display:none!important}.w3-show-block,.w3-show{display:block!important}.w3-show-inline-block{display:inline-block!important}
@media (max-width:1205px){.w3-auto{max-width:95%}}
@media (max-width:600px){.w3-modal-content{margin:0 10px;width:auto!important}.w3-modal{padding-top:30px}
.w3-dropdown-hover.w3-mobile .w3-dropdown-content,.w3-dropdown-click.w3-mobile .w3-dropdown-content{position:relative}	
.w3-hide-small{display:none!important}.w3-mobile{display:block;width:100%!important}.w3-bar-item.w3-mobile,.w3-dropdown-hover.w3-mobile,.w3-dropdown-click.w3-mobile{text-align:center}
.w3-dropdown-hover.w3-mobile,.w3-dropdown-hover.w3-mobile .w3-btn,.w3-dropdown-hover.w3-mobile .w3-button,.w3-dropdown-click.w3-mobile,.w3-dropdown-click.w3-mobile .w3-btn,.w3-dropdown-click.w3-mobile .w3-button{width:100%}}

@media (max-width:768px){.w3-modal-content{width:500px}.w3-modal{padding-top:50px}}
@media (min-width:993px){.w3-modal-content{width:700px}.w3-hide-large{display:none!important}.w3-sidebar.w3-collapse{display:block!important}}

@media (max-width:992px) and (min-width:601px){.w3-hide-medium{display:none!important}}
@media (max-width:992px){.w3-sidebar.w3-collapse{display:none}.w3-main{margin-left:0!important;margin-right:0!important}.w3-auto{max-width:100%}}
.w3-top,.w3-bottom{position:fixed;width:100%;z-index:1}.w3-top{top:0}.w3-bottom{bottom:0}
.w3-overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2}
.w3-display-topleft{position:absolute;left:0;top:0}.w3-display-topright{position:absolute;right:0;top:0}
.w3-display-bottomleft{position:absolute;left:0;bottom:0}.w3-display-bottomright{position:absolute;right:0;bottom:0}
.w3-display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}
.w3-display-left{position:absolute;top:50%;left:0%;transform:translate(0%,-50%);-ms-transform:translate(-0%,-50%)}
.w3-display-right{position:absolute;top:50%;right:0%;transform:translate(0%,-50%);-ms-transform:translate(0%,-50%)}
.w3-display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
.w3-display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
.w3-display-container:hover .w3-display-hover{display:block}.w3-display-container:hover span.w3-display-hover{display:inline-block}.w3-display-hover{display:none}
.w3-display-position{position:absolute}
.w3-circle{border-radius:50%}
.w3-round-small{border-radius:2px}.w3-round,.w3-round-medium{border-radius:4px}.w3-round-large{border-radius:8px}.w3-round-xlarge{border-radius:16px}.w3-round-xxlarge{border-radius:32px}
.w3-row-padding,.w3-row-padding>.w3-half,.w3-row-padding>.w3-third,.w3-row-padding>.w3-twothird,.w3-row-padding>.w3-threequarter,.w3-row-padding>.w3-quarter,.w3-row-padding>.w3-col{padding:0 8px}
.w3-container,.w3-panel{padding:16px}.w3-panel{margin-top:10px;margin-bottom:10px}
.w3-code,.w3-codespan{font-family:Consolas,"courier new";font-size:16px}
.w3-code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4CAF50;word-wrap:break-word}
.w3-codespan{color:crimson;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%}
.w3-card,.w3-card-2{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}
.w3-card-4,.w3-hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19)}
.w3-spin{animation:w3-spin 2s infinite linear}@keyframes w3-spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
.w3-animate-fading{animation:fading 10s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
.w3-animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}}
.w3-animate-top{position:relative;animation:animatetop 0.4s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
.w3-animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
.w3-animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
.w3-animate-bottom{position:relative;animation:animatebottom 0.4s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
.w3-animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
.w3-animate-input{transition:width 0.4s ease-in-out}.w3-animate-input:focus{width:100%!important}
.w3-opacity,.w3-hover-opacity:hover{opacity:0.60}.w3-opacity-off,.w3-hover-opacity-off:hover{opacity:1}
.w3-opacity-max{opacity:0.25}.w3-opacity-min{opacity:0.75}
.w3-greyscale-max,.w3-grayscale-max,.w3-hover-greyscale:hover,.w3-hover-grayscale:hover{filter:grayscale(100%)}
.w3-greyscale,.w3-grayscale{filter:grayscale(75%)}.w3-greyscale-min,.w3-grayscale-min{filter:grayscale(50%)}
.w3-sepia{filter:sepia(75%)}.w3-sepia-max,.w3-hover-sepia:hover{filter:sepia(100%)}.w3-sepia-min{filter:sepia(50%)}
.w3-tiny{font-size:10px!important}.w3-small{font-size:12px!important}.w3-medium{font-size:15px!important}.w3-large{font-size:18px!important}
.w3-xlarge{font-size:24px!important}.w3-xxlarge{font-size:36px!important}.w3-xxxlarge{font-size:48px!important}.w3-jumbo{font-size:64px!important}
.w3-left-align{text-align:left!important}.w3-right-align{text-align:right!important}.w3-justify{text-align:justify!important}.w3-center{text-align:center!important}
.w3-border-0{border:0!important}.w3-border{border:1px solid #ccc!important}
.w3-border-top{border-top:1px solid #ccc!important}.w3-border-bottom{border-bottom:1px solid #ccc!important}
.w3-border-left{border-left:1px solid #ccc!important}.w3-border-right{border-right:1px solid #ccc!important}
.w3-topbar{border-top:6px solid #ccc!important}.w3-bottombar{border-bottom:6px solid #ccc!important}
.w3-leftbar{border-left:6px solid #ccc!important}.w3-rightbar{border-right:6px solid #ccc!important}
.w3-section,.w3-code{margin-top:16px!important;margin-bottom:16px!important}
.w3-margin{margin:16px!important}.w3-margin-top{margin-top:16px!important}.w3-margin-bottom{margin-bottom:16px!important}
.w3-margin-left{margin-left:16px!important}.w3-margin-right{margin-right:16px!important}
.w3-padding-small{padding:4px 8px!important}.w3-padding{padding:8px 16px!important}.w3-padding-large{padding:12px 24px!important}
.w3-padding-16{padding-top:16px!important;padding-bottom:16px!important}.w3-padding-24{padding-top:24px!important;padding-bottom:24px!important}
.w3-padding-32{padding-top:32px!important;padding-bottom:32px!important}.w3-padding-48{padding-top:48px!important;padding-bottom:48px!important}
.w3-padding-64{padding-top:64px!important;padding-bottom:64px!important}
.w3-left{float:left!important}.w3-right{float:right!important}
.w3-button:hover{color:#000!important;background-color:#ccc!important}
.w3-transparent,.w3-hover-none:hover{background-color:transparent!important}
.w3-hover-none:hover{box-shadow:none!important}

/* Import Google Fonts: Poppins */


/* ===================== CARD CATALOG GRID - FULL WIDTH BARIS ===================== */
.modern-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 28px;
  margin-bottom: 44px;
  width: 100%;
  align-items: stretch;
}

.modern-card {
  background: var(--card-bg);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  border: 2.5px solid #f0f0f0;
  text-align: center;
  text-decoration: none;
  transition: box-shadow var(--transition), transform var(--transition), border-color var(--transition), background 0.18s;
  cursor: pointer;
  min-height: 180px;
  max-width: 180px;
  width: 100%;
  margin: 0;
  padding: 24px 10px 16px 10px;
  box-sizing: border-box;
  position: relative;
  overflow: visible;
  background: linear-gradient(135deg, #f8fafc 60%, #eafaf1 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}

.modern-card img {
  width: 56px;
  height: 56px;
  object-fit: contain;
  margin-bottom: 12px;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(39,174,96,0.07);
  background: #fff;
  padding: 4px;
  transition: transform var(--transition), box-shadow var(--transition);
  display: block;
}

.modern-card-title {
  font-size: 1.02rem;
  font-weight: 700;
  margin-bottom: 0;
  color: var(--primary);
  letter-spacing: 0.2px;
  line-height: 1.2;
  flex: 1 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
}

@media (max-width: 1200px) {
  /* ...existing code... */
  .modern-row {
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 16px;
  }
  .modern-card {
    max-width: 120px;
    min-height: 120px;
    padding: 14px 4px 8px 4px;
  }
  .modern-card img {
    width: 36px;
    height: 36px;
    padding: 2px;
    margin-bottom: 8px;
  }

  .modern-menu-toggle {
    display: block !important;
    position: absolute;
    right: 12px;
    top: 58%;
    /* Ubah dari 50% ke 58% agar lebih turun */
    transform: translateY(-50%);
    margin-left: 0;
    z-index: 10001;
  }
  .modern-nav {
    display: none !important;
  }
}
@media (max-width: 700px) {
  /* ...existing code... */
  .modern-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .modern-card {
    max-width: 98vw;
    min-width: 0;
    width: 98vw;
    min-height: 60px;
    padding: 6px 2px 4px 2px;
  }
  .modern-card img {
    width: 22px;
    height: 22px;
    padding: 1px;
    margin-bottom: 4px;
  }
}

/* ===================== FROGMEZ CARD KATALOG BARU ===================== */
:root {
  --primary: #27ae60;
  --purple: #9c27b0;
  --orange: #ff9800;
  --yellow: #ffd600;
  --indigo: #3f51b5;
  --blue: #2196f3;
  --bg: #f4f7fa;
  --card-bg: #fff;
  --text: #23263a;
  --radius: 16px;
  --shadow: 0 4px 16px rgba(39, 174, 96, 0.10);
  --shadow-hover: 0 8px 32px rgba(39, 174, 96, 0.18);
  --transition: 0.18s cubic-bezier(.4,0,.2,1);
}

body {
  background: var(--bg);
  color: var(--text);
  margin: 0;
  font-family: 'Urbanist', 'Poppins', 'Inter', Arial, sans-serif;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* Terapkan font modern ke seluruh elemen utama */
html, body, input, button, select, textarea, .modern-logo, .modern-nav a, .modern-card-title, .modern-section-title, .modern-footer, .modern-section, .modern-header, .modern-main, .modern-container {
  font-family: 'Urbanist', 'Poppins', 'Inter', Arial, sans-serif !important;
  font-smooth: always;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ======= HEADER & NAV FIX ======= */
.modern-header-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 32px;
  position: relative;
}

.modern-menu-toggle:focus {
  color: #fff;
  background: var(--primary);
  border-color: var(--primary);
  box-shadow: 0 4px 16px rgba(39,174,96,0.16);
  transform: scale(1.12) rotate(12deg);
  outline: none;
}
@media (max-width: 900px) {
  .modern-menu-toggle {
    display: block !important;
    position: absolute;
    right: 12px;
    top: 58%;
    /* Ubah dari 50% ke 58% agar lebih turun */
    transform: translateY(-50%);
    margin-left: 0;
    z-index: 10001;
  }
  .modern-nav {
    display: none !important;
  }
}
@media (min-width: 901px) {
  .modern-nav {
    display: flex !important;
  }
  .modern-menu-toggle {
    display: none !important;
  }
}

/* ======= MOBILE NAV OVERLAY ======= */
.modern-nav-mobile {
  display: flex;
  flex-direction: column;
  gap: 18px;
  position: fixed;
  top: 0;
  right: -320px;
  width: 240px;
  height: 100vh;
  background: #fff;
  box-shadow: -4px 0 24px rgba(39,174,96,0.13), -1px 0 0 #eafaf1;
  z-index: 10000;
  padding: 24px 18px 24px 18px;
  transition:
    right 0.32s cubic-bezier(.7,0,.2,1),
    opacity 0.22s cubic-bezier(.4,0,.2,1),
    transform 0.32s cubic-bezier(.7,0,.2,1),
    filter 0.22s cubic-bezier(.4,0,.2,1);
  opacity: 0;
  transform: scale(0.98) translateX(60px);
  filter: blur(2px);
  pointer-events: none;
  border-radius: 0 0 0 12px;
  /* Animasi menu item */
}
.modern-nav-mobile.active {
  right: 0;
  opacity: 1;
  transform: scale(1) translateX(0);
  filter: blur(0);
  pointer-events: auto;
}
.modern-nav-mobile a {
  color: var(--primary);
  font-weight: 600;
  font-size: 1.08rem;
  padding: 8px 18px;
  border-radius: 18px;
  transition: background 0.18s, color 0.18s;
  background: transparent;
  position: relative;
  display: inline-block;
  opacity: 0;
  transform: translateX(32px) scale(0.98);
  transition:
    background var(--transition),
    color var(--transition),
    opacity 0.32s cubic-bezier(.7,0,.2,1),
    transform 0.32s cubic-bezier(.7,0,.2,1);
}
.modern-nav-mobile.active a {
  opacity: 1;
  transform: translateX(0) scale(1);
}
.modern-nav-mobile a:nth-child(2) { transition-delay: 0.08s; }
.modern-nav-mobile a:nth-child(3) { transition-delay: 0.16s; }
.modern-nav-mobile a:nth-child(4) { transition-delay: 0.24s; }
.modern-nav-mobile a:nth-child(5) { transition-delay: 0.32s; }
.modern-nav-mobile a:nth-child(6) { transition-delay: 0.40s; }
/* Tambahkan jika ada lebih banyak link */

/* Animasi hover pada menu toggle (hamburger) dan proporsi tombol */
.modern-menu-toggle {
  display: none;
  background: #fff;
  border: 2px solid var(--primary);
  color: var(--primary);
  font-size: 2.2rem;
  cursor: pointer;
  margin-left: 0;
  z-index: 300;
  align-self: center;
  position: absolute;
  transition: color 0.18s, background 0.18s, border-color 0.18s, transform 0.18s, box-shadow 0.18s;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  line-height: 44px;
  text-align: center;
  box-sizing: border-box;
  box-shadow: 0 2px 8px rgba(39,174,96,0.08);
}
.modern-menu-toggle:hover,
.modern-menu-toggle:focus {
  color: #fff;
  background: var(--primary);
  border-color: var(--primary);
  box-shadow: 0 4px 16px rgba(39,174,96,0.16);
  transform: scale(1.12) rotate(12deg);
  outline: none;
}

/* ======= FOOTER FIX ======= */
.modern-footer {
  width: 100%;
  background: #fff;
  color: var(--primary);
  text-align: center;
  padding: 18px 0 12px 0;
  font-size: 1rem;
  letter-spacing: 0.5px;
  box-shadow: 0 -2px 12px rgba(0,0,0,0.04);
  flex-shrink: 0;
  font-weight: 700;
  position: relative;
  bottom: 0;
  left: 0;
  margin: 0;
}

/* ======= MAIN CONTAINER FIX ======= */
.modern-main {
  flex: 1 0 auto;
  padding: 36px 0 40px 0;
  background: var(--bg);
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.modern-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
  width: 100%;
}

/* ====== CARD COLOR VARIANTS FOR PRO.HTML ====== */
.modern-card.green {
  border-color: var(--primary);
  box-shadow: 0 4px 16px rgba(39, 174, 96, 0.13);
}
.modern-card.purple {
  border-color: var(--purple);
  box-shadow: 0 4px 16px rgba(156, 39, 176, 0.13);
}
.modern-card.orange {
  border-color: var(--orange);
  box-shadow: 0 4px 16px rgba(255, 152, 0, 0.13);
}
.modern-card.yellow {
  border-color: var(--yellow);
  box-shadow: 0 4px 16px rgba(255, 214, 0, 0.13);
}

/* Hover effect for all cards */
.modern-card:hover,
.modern-card:focus {
  box-shadow: var(--shadow-hover);
  border-color: var(--primary);
  transform: translateY(-4px) scale(1.03);
  background: linear-gradient(135deg, #eafaf1 60%, #f8fafc 100%);
  z-index: 2;
}
.modern-card.purple:hover,
.modern-card.purple:focus {
  border-color: var(--purple);
}
.modern-card.orange:hover,
.modern-card.orange:focus {
  border-color: var(--orange);
}
.modern-card.yellow:hover,
.modern-card.yellow:focus {
  border-color: var(--yellow);
}

/* Modern card title and section title improvements */
.modern-card-title {
  /* ...existing code... */
  font-size: 1.08rem;
  font-weight: 700;
  color: var(--primary);
  /* ...existing code... */
}
.modern-card.green .modern-card-title {
  color: var(--primary);
}
.modern-card.purple .modern-card-title {
  color: var(--purple);
}
.modern-card.orange .modern-card-title {
  color: var(--orange);
}
.modern-card.yellow .modern-card-title {
  color: #bfa100;
}

.modern-section-title {
  font-size: 1.18rem;
  font-weight: 700;
  color: var(--primary);
  margin-bottom: 18px;
  letter-spacing: 0.5px;
}

/* Responsive tweaks for card color borders */
@media (max-width: 1200px) {
  /* ...existing code... */
  .modern-card.green,
  .modern-card.purple,
  .modern-card.orange,
  .modern-card.yellow {
    border-width: 2px;
  }
}
@media (max-width: 900px) {
  /* ...existing code... */
  .modern-card.green,
  .modern-card.purple,
  .modern-card.orange,
  .modern-card.yellow {
    border-width: 1.5px;
  }
}
@media (max-width: 700px) {
  /* ...existing code... */
  .modern-card.green,
  .modern-card.purple,
  .modern-card.orange,
  .modern-card.yellow {
    border-width: 1px;
  }
}

/* ======= HEADER LOGO & HEADER ======= */
.modern-header {
  width: 100%;
  background: #fff;
  box-shadow: 0 2px 12px rgba(39,174,96,0.06);
  position: relative;
  z-index: 10;
  border-bottom: 1.5px solid #eafaf1;
}
.modern-logo {
  font-family: 'Inter', Arial, sans-serif;
  font-size: 2rem;
  font-weight: 900;
  color: var(--primary);
  letter-spacing: 1.5px;
  text-shadow: 0 1px 0 #eafaf1;
  user-select: none;
  margin-right: 24px;
  line-height: 1.1;
}

/* ======= NAVIGATION MENU ======= */
.modern-nav a {
  color: var(--primary);
  font-weight: 600;
  font-size: 1.08rem;
  padding: 8px 18px;
  border-radius: 18px;
  transition: background 0.18s, color 0.18s;
  background: transparent;
  position: relative;
  display: inline-block;
}
.modern-nav a.active,
.modern-nav a:focus {
  background: var(--primary);
  color: #fff;
}
.modern-nav a:hover:not(.active) {
  background: #eafaf1;
  color: var(--primary);
  text-decoration: none;
}

/* ======= SECTION SPACING ======= */
.modern-section {
  margin-bottom: 38px;
  padding: 0 0 8px 0;
  border-radius: 12px;
  background: transparent;
  box-shadow: none;
}

/* ===================== CUSTOM STYLES ===================== */
.footer-partner {
  font-size: 0.98rem;
  color: #888;
  margin-bottom: 2px;
  font-weight: 500;
  letter-spacing: 0.2px;
}
.footer-partner a {
  color: var(--primary);
  font-weight: 600;
  transition: color 0.18s;
}
.footer-partner a:hover {
  color: var(--orange);
}

/* Dark mode toggle button */
.dark-mode-toggle {
  background: none;
  border: none;
  color: var(--primary);
  font-size: 1.7rem;
  cursor: pointer;
  margin-left: auto;
  margin-right: 18px;
  padding: 4px 8px;
  border-radius: 50%;
  transition: background 0.18s;
  position: relative;
  z-index: 101;
}
.dark-mode-toggle:hover,
.dark-mode-toggle:focus {
  background: #eafaf1;
  color: var(--orange);
  outline: none;
}

/* Responsive: letakkan di pojok kanan atas header */
.modern-header-inner {
  /* ...existing code... */
  position: relative;
}
@media (max-width: 900px) {
  .dark-mode-toggle {
    margin-right: 48px;
  }
}

/* Dark mode theme */
.dark-mode {
  --bg: #181c1f;
  --card-bg: #23272b;
  --text: #f4f7fa;
  --primary: #27ae60;
  --shadow: 0 4px 16px rgba(39, 174, 96, 0.18);
  --shadow-hover: 0 8px 32px rgba(39, 174, 96, 0.28);
}
.dark-mode body {
  background: var(--bg);
  color: var(--text);
}
.dark-mode .modern-header,
.dark-mode .modern-footer {
  background: #23272b;
  color: var(--primary);
  box-shadow: 0 2px 12px rgba(39,174,96,0.13);
}
.dark-mode .modern-card {
  background: var(--card-bg);
  color: var(--text);
  border-color: #2e3a3f;
}
.dark-mode .modern-card-title {
  color: var(--primary);
}
.dark-mode .modern-section-title {
  color: var(--primary);
}
.dark-mode .modern-nav a,
.dark-mode .modern-nav-mobile a {
  color: var(--primary);
  background: #23272b;
}
.dark-mode .modern-nav a.active,
.dark-mode .modern-nav a:focus,
.dark-mode .modern-nav-mobile a.active,
.dark-mode .modern-nav-mobile a:focus {
  background: var(--primary);
  color: #fff;
}
.dark-mode .modern-nav a:hover:not(.active),
.dark-mode .modern-nav-mobile a:hover:not(.active) {
  background: #222;
  color: var(--primary);
}
.dark-mode .footer-partner {
  color: #aaa;
}
.dark-mode .footer-partner a {
  color: var(--primary);
}
.dark-mode .footer-partner a:hover {
  color: var(--orange);
}

/* Sidebar (mobile menu) slide animation */
.sidebar {
  position: fixed;
  top: 0;
  left: 0;
  width: 260px;
  max-width: 90vw;
  height: 100vh;
  background: #fff;
  box-shadow: 2px 0 24px rgba(39,174,96,0.10), 1px 0 0 #eafaf1;
  z-index: 2000;
  transform: translateX(-100%);
  transition: transform 0.32s cubic-bezier(.4,0,.2,1), opacity 0.18s;
  opacity: 0;
  display: block;
  pointer-events: none;
}
.sidebar.active {
  transform: translateX(0);
  opacity: 1;
  pointer-events: auto;
}
@media (max-width: 900px) {
  .sidebar {
    /* ...existing code... */
    border-radius: 0 12px 12px 0;
  }
}

/* Overlay for sidebar */
.sidebar-overlay {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(30,40,40,0.22);
  z-index: 1999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s;
}
.sidebar.active + .sidebar-overlay {
  opacity: 1;
  pointer-events: auto;
}

/* Dark mode sidebar */
.dark-mode .sidebar {
  background: #23272b;
  box-shadow: 2px 0 24px rgba(39,174,96,0.18), 1px 0 0 #23272b;
}
.dark-mode .sidebar-overlay {
  background: rgba(20,24,24,0.33);
}

/* Tombol close menu mobile */
.close-mobile-nav {
  background: none;
  border: none;
  color: var(--primary);
  font-size: 2.2rem;
  position: absolute;
  top: 12px;
  right: 12px;
  cursor: pointer;
  margin-bottom: 0;
  z-index: 10001;
  padding: 0;
  line-height: 1;
  border-radius: 50%;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.18s, background 0.18s, transform 0.18s, box-shadow 0.18s;
}
.close-mobile-nav:hover,
.close-mobile-nav:focus {
  color: var(--orange);
  background: #eafaf1;
  box-shadow: 0 2px 12px rgba(39,174,96,0.10);
  transform: scale(1.12) rotate(90deg);
  outline: none;
}
