/* Final visual pass for the remaining public pages.
   The palette intentionally stays muted: section-to-section colour changes are
   created with soft, low-saturation gradients rather than neon glows. */

html{scroll-snap-type:none!important;}

.comingsoon-page,
.lokasi-page,
.faq-page,
.policy-page,
.err-page{
  min-height:auto;
  scroll-snap-align:none;
  scroll-snap-stop:normal;
}

/* Webinar, webinar registration, and e-book placeholder pages */
.comingsoon-page{
  min-height:calc(100svh - 82px);
  padding:clamp(86px,10vw,132px) 0;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background-color:#171A62;
  background-image:
    url('spiral-flow-hero.svg'),
    linear-gradient(180deg,rgba(13,16,69,.9) 0%,rgba(28,68,104,.84) 48%,#11133E 100%),
    url('webinar-studio-bg-ai.jpg');
  background-repeat:no-repeat;
  background-position:center,center,center;
  background-size:100% 100%,100% 100%,cover;
}

.page-ebook .comingsoon-page{
  background-image:
    url('spiral-flow-hero.svg'),
    linear-gradient(180deg,rgba(14,17,72,.91) 0%,rgba(43,46,131,.82) 50%,#11133E 100%),
    url('ebook-learning-bg-ai.jpg');
  background-position:center,center,center 44%;
}

.page-webinar-registration .comingsoon-page{
  background-image:
    url('spiral-flow-hero.svg'),
    linear-gradient(180deg,rgba(12,15,63,.91) 0%,rgba(30,37,101,.84) 48%,#11133E 100%),
    url('webinar-registration-bg-ai.jpg');
  background-position:center,center,center;
}

.comingsoon-wrap{
  max-width:760px;
  padding:clamp(38px,6vw,68px);
  border:1px solid rgba(255,255,255,.17);
  border-radius:30px;
  background:rgba(9,12,58,.52);
  box-shadow:0 34px 90px rgba(6,8,43,.34),inset 0 1px 0 rgba(255,255,255,.09);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}

.comingsoon-badge{
  width:72px;
  height:72px;
  margin:0 auto 22px;
  display:grid;
  place-items:center;
  border-radius:22px;
  font-size:34px;
  background:linear-gradient(145deg,rgba(216,166,61,.22),rgba(255,255,255,.08));
  border:1px solid rgba(246,197,18,.26);
  box-shadow:0 15px 34px rgba(5,7,39,.24);
}

.comingsoon-page .kicker{
  color:#F2C85B!important;
  letter-spacing:.13em;
  text-shadow:none;
}

.comingsoon-title{
  color:#fff;
  font-size:clamp(32px,5vw,52px);
  letter-spacing:-.035em;
  margin:14px 0 18px;
  text-shadow:0 8px 28px rgba(3,5,36,.28);
}

.comingsoon-sub{
  max-width:590px;
  margin:0 auto 32px;
  color:#D8E0E3;
  font-size:16px;
  line-height:1.78;
  text-align:center;
}

.comingsoon-actions{gap:12px;}
.comingsoon-actions .btn{min-width:190px;}
.comingsoon-btn-outline{
  color:#fff!important;
  border-color:rgba(255,255,255,.42)!important;
  background:rgba(255,255,255,.05)!important;
}
.comingsoon-btn-outline:hover{background:rgba(255,255,255,.12)!important;}

/* Shared page-heading treatment */
.lokasi-page,
.faq-page,
.policy-page{
  position:relative;
  overflow:hidden;
  padding:clamp(78px,8vw,112px) 0 94px;
}

.lokasi-page::after,
.faq-page::after,
.policy-page::after{
  content:'';
  position:absolute;
  z-index:0;
  left:0;
  right:0;
  bottom:0;
  height:330px;
  background:linear-gradient(180deg,transparent 0%,rgba(17,19,62,.48) 50%,#11133E 100%);
  pointer-events:none;
}

.lokasi-page>.wrap,
.faq-page>.wrap,
.policy-page>.wrap{position:relative;z-index:1;}

.lokasi-top,
.faq-top,
.policy-top{margin-bottom:52px;}

.lokasi-page .kicker,
.faq-page .kicker,
.policy-page .kicker{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:6px 12px;
  border-radius:999px;
  color:#8C6A18!important;
  background:rgba(255,255,255,.66);
  border:1px solid rgba(216,166,61,.2);
  box-shadow:0 8px 22px rgba(27,34,96,.06);
  text-shadow:none!important;
}

.lokasi-page-title,
.faq-page-title,
.policy-page-title{
  font-size:clamp(34px,4.8vw,52px);
  letter-spacing:-.035em;
  margin:16px 0 14px;
  text-shadow:none!important;
}

.lokasi-page-sub,
.faq-page-sub,
.policy-page-sub{
  max-width:640px;
  margin-left:auto;
  margin-right:auto;
  color:#596764;
  font-size:16px;
  line-height:1.75;
  text-align:center;
  text-shadow:none!important;
}

/* Location: cool indigo at the heading, neutral around the map, soft green at CTA */
.lokasi-page{
  background-color:#F6F8F7;
  background-image:
    url('map-route.svg'),
    linear-gradient(180deg,rgba(238,241,252,.95) 0%,rgba(248,248,251,.94) 30%,rgba(250,249,243,.93) 61%,rgba(237,246,241,.95) 100%),
    url('location-office-bg-ai.jpg');
  background-repeat:no-repeat;
  background-size:100% 540px,100% 100%,cover;
  background-position:center top,center,center;
  background-blend-mode:normal,normal,soft-light;
}

.lokasi-grid{max-width:1080px;gap:28px;align-items:stretch;}

.lokasi-card,
.lokasi-map-wrap{
  border:1px solid rgba(43,46,131,.1);
  border-radius:24px;
  background:rgba(255,255,255,.82);
  box-shadow:0 24px 62px rgba(27,34,96,.1),inset 0 1px 0 rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(9px);
  backdrop-filter:blur(9px);
}

.lokasi-card{padding:32px;}
.lokasi-rating{margin-bottom:14px;background:#FFF5D5;border:1px solid rgba(216,166,61,.15);}
.lokasi-item{padding:16px 0;border-color:rgba(43,46,131,.08);}
.lokasi-item-icon{
  width:42px;
  height:42px;
  border-radius:13px;
  background:linear-gradient(145deg,#FFF5D5,#F1F3FA);
  border:1px solid rgba(216,166,61,.14);
}
.lokasi-item-value{line-height:1.55;}
.lokasi-map-wrap{min-height:100%;overflow:hidden;}
.lokasi-map-wrap iframe{min-height:510px;}
.lokasi-cta-group .btn{flex:1;justify-content:center;text-align:center;}

/* FAQ: question marks remain barely visible under the cards. */
.faq-page{
  background-color:#F8F8FB;
  background-image:
    url('question-pattern-light.svg'),
    linear-gradient(180deg,#EFF1FC 0%,#FAF9F5 42%,#F2F7F3 100%);
  background-repeat:no-repeat;
  background-size:100% 560px,100% 100%;
  background-position:center top,center;
}

.faq-list{max-width:840px;gap:13px;}
.faq-page details{
  position:relative;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(43,46,131,.1);
  border-radius:18px;
  background:rgba(255,255,255,.83);
  box-shadow:0 13px 34px rgba(27,34,96,.06);
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background .22s ease;
  -webkit-backdrop-filter:blur(7px);
  backdrop-filter:blur(7px);
}

.faq-page details:hover{
  transform:translateY(-2px);
  border-color:rgba(43,46,131,.2);
  box-shadow:0 18px 40px rgba(27,34,96,.09);
}

.faq-page details[open]{background:rgba(255,255,255,.94);border-color:rgba(14,166,114,.2);}
.faq-page summary{
  min-height:68px;
  padding:20px 24px;
  gap:22px;
  color:#252977;
  font-size:16px;
  text-shadow:none;
}
.faq-page summary::after{
  flex:0 0 32px;
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#8C6A18;
  background:#FFF5D5;
  font-size:19px;
}
.faq-page details[open] summary::after{color:#fff;background:#0F9F68;}
.faq-page details p{
  margin:0;
  padding:0 24px 22px;
  color:#5B6764;
  font-size:15px;
  line-height:1.72;
  text-align:left;
  text-shadow:none;
}

/* Legal pages: restrained paper-like gradient that changes gently down the page. */
.policy-page{
  background-color:#F8F8F5;
  background-image:
    url('tax-documents.svg'),
    linear-gradient(180deg,rgba(238,241,252,.95) 0%,rgba(251,250,246,.94) 27%,rgba(248,248,245,.93) 58%,rgba(238,246,241,.95) 100%),
    url('terms-policy-bg-ai.jpg');
  background-repeat:no-repeat;
  background-size:100% 540px,100% 100%,cover;
  background-position:center top,center,center;
  background-blend-mode:normal,normal,soft-light;
}

.page-refund-policy .policy-page{
  background-image:
    url('tax-documents.svg'),
    linear-gradient(180deg,rgba(238,241,252,.95) 0%,rgba(251,250,246,.94) 27%,rgba(248,248,245,.93) 58%,rgba(238,246,241,.95) 100%),
    url('refund-policy-bg-ai.jpg');
}

.policy-body{
  max-width:860px;
  gap:18px;
  position:relative;
}

.policy-block{
  position:relative;
  overflow:hidden;
  padding:28px 30px 28px 34px;
  border:1px solid rgba(43,46,131,.1);
  border-radius:18px;
  background:rgba(255,255,255,.84);
  box-shadow:0 14px 36px rgba(27,34,96,.065),inset 0 1px 0 rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
}

.policy-block::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:linear-gradient(180deg,#4E53A7,#D8A63D);
}
.policy-block:nth-child(3n+2)::before{background:linear-gradient(180deg,#D8A63D,#B99742);}
.policy-block:nth-child(3n)::before{background:linear-gradient(180deg,#139B69,#6CB895);}
.policy-block h2{
  color:#252977;
  font-size:19px;
  line-height:1.35;
  margin-bottom:12px;
  text-shadow:none!important;
}
.policy-block p,
.policy-block ul{
  color:#586561;
  font-size:15px;
  line-height:1.72;
  text-shadow:none!important;
}
.policy-block p{text-align:left;}
.policy-block strong{color:#263E39;}

/* One consistent final CTA across location, FAQ, and legal pages. */
.lokasi-page .cta-final,
.faq-page .cta-final,
.policy-page .cta-final{
  max-width:900px;
  margin:64px auto 0;
  padding:54px 34px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:28px;
  color:#fff;
  background-color:#171A62;
  background-image:
    url('spiral-flow-cta.svg'),
    linear-gradient(180deg,rgba(28,31,97,.9),rgba(13,65,63,.92)),
    linear-gradient(135deg,#181A54,#0C4A48);
  background-position:center,center,center;
  background-size:100% 100%,100% 100%,cover;
  background-repeat:no-repeat;
  box-shadow:0 28px 72px rgba(7,9,42,.24),inset 0 1px 0 rgba(255,255,255,.08);
}
.lokasi-page .cta-final::before,
.faq-page .cta-final::before,
.policy-page .cta-final::before{
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 50% 0,rgba(216,166,61,.13),transparent 54%);
  pointer-events:none;
}
.lokasi-page .cta-final h2,
.faq-page .cta-final h2,
.policy-page .cta-final h2{
  position:relative;
  color:#fff;
  font-size:clamp(28px,3.7vw,40px);
  line-height:1.18;
  margin-bottom:13px;
}
.lokasi-page .cta-final p,
.faq-page .cta-final p,
.policy-page .cta-final p{
  position:relative;
  max-width:560px;
  color:#D5E0DE;
  font-size:15.5px;
  line-height:1.72;
  margin-bottom:27px;
}
.lokasi-page .cta-final .btn,
.faq-page .cta-final .btn,
.policy-page .cta-final .btn{position:relative;}

/* 404: branded, calm, and visually connected to header/footer. */
.err-page{
  min-height:calc(100svh - 82px);
  padding:clamp(82px,10vw,126px) 0;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background-color:#171A62;
  background-image:
    url('spiral-flow-hero.svg'),
    linear-gradient(180deg,rgba(12,15,65,.92) 0%,rgba(43,46,131,.84) 52%,#11133E 100%),
    url('not-found-bg-ai.jpg');
  background-position:center,center,center;
  background-size:100% 100%,100% 100%,cover;
  background-repeat:no-repeat;
}
.err-wrap{
  max-width:720px;
  padding:clamp(38px,6vw,66px);
  border:1px solid rgba(255,255,255,.16);
  border-radius:30px;
  background:rgba(8,11,54,.52);
  box-shadow:0 34px 90px rgba(5,7,39,.34),inset 0 1px 0 rgba(255,255,255,.09);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}

body footer{
  background-color:#11133E;
  background-image:
    radial-gradient(circle at 86% 0,rgba(14,166,114,.1),transparent 30%),
    linear-gradient(180deg,#11133E 0%,#11133E 30%,#0D0F34 100%);
  box-shadow:none;
}
.err-code{
  color:#fff;
  font-size:clamp(86px,16vw,148px);
  text-shadow:0 14px 42px rgba(4,6,36,.3);
}
.err-code .gold-accent{color:#F2C85B;}
.err-title{color:#fff;font-size:clamp(28px,4.2vw,42px);letter-spacing:-.025em;}
.err-sub{color:#D6E0E1;line-height:1.75;text-align:center;}
.err-actions .btn-outline{color:#fff;border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.05);}
.err-links{padding-top:4px;}
.err-links a{color:#DCE4F2;border-color:transparent;}
.err-links a:hover{color:#F2C85B;border-color:#F2C85B;}

@media(max-width:860px){
  .lokasi-grid{gap:20px;}
  .lokasi-map-wrap iframe{min-height:420px;}
}

@media(max-width:560px){
  .comingsoon-page,
  .err-page{min-height:calc(100svh - 68px);padding:58px 0;}
  .comingsoon-wrap,
  .err-wrap{padding:34px 20px;border-radius:24px;}
  .comingsoon-badge{width:62px;height:62px;border-radius:19px;font-size:29px;}
  .comingsoon-actions,
  .err-actions{flex-direction:column;align-items:stretch;}
  .comingsoon-actions .btn,
  .err-actions .btn{width:100%;}
  .lokasi-page,
  .faq-page,
  .policy-page{padding:64px 0 70px;}
  .lokasi-top,
  .faq-top,
  .policy-top{margin-bottom:36px;}
  .lokasi-card{padding:22px 18px;}
  .lokasi-cta-group{flex-direction:column;}
  .faq-page summary{padding:18px 17px;font-size:15px;}
  .faq-page details p{padding:0 17px 19px;}
  .policy-block{padding:23px 19px 23px 24px;}
  .lokasi-page .cta-final,
  .faq-page .cta-final,
  .policy-page .cta-final{margin-top:46px;padding:40px 20px;border-radius:23px;}
}

@media(prefers-reduced-motion:reduce){
  .faq-page details{transition:none;}
}
