@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Sans:wght@300;400;500;600&display=swap');

:root {
  --pp:#534077; --pp-light:#EDE8F5; --pp-dark:#3A2B55;
  --teal:#5ABFBB; --teal-light:#E1F5EE; --teal-dark:#0F6E56;
  --coral:#E8825A; --coral-light:#FAEDE7; --coral-dark:#7A3D1E;
  --ink:#1A1A2E; --ink-soft:#3D3D5C; --muted:#6B6B8A;
  --cream:#F7F0EE; --cream-dark:#EFE4E0; --cream-darker:#EAD9D4;
  --border:#E4D8D4; --white:#FFFFFF;
  --radius-sm:8px; --radius:12px; --radius-lg:24px;
  --shadow-sm:0 1px 4px rgba(83,64,119,0.08);
  --shadow:0 4px 20px rgba(83,64,119,0.12);
  --shadow-lg:0 12px 40px rgba(83,64,119,0.18);
  --serif:'DM Serif Display',Georgia,serif;
  --sans:'DM Sans',system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.6;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
p{font-size:1rem;color:var(--ink-soft);}
h1,h2,h3{font-family:var(--serif);line-height:1.2;}
h1{font-size:clamp(2rem,5vw,3.2rem);}
h2{font-size:clamp(1.5rem,3vw,2.2rem);}
h3{font-size:1.15rem;}
.container{max-width:920px;margin:0 auto;padding:0 1.5rem;}
.section{padding:5rem 0;}
.section--sm{padding:3rem 0;}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(247,240,238,0.96);backdrop-filter:blur(12px);border-bottom:0.5px solid var(--border);height:62px;display:flex;align-items:center;}
.nav__inner{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:920px;margin:0 auto;padding:0 1.5rem;}
.nav__logo img{height:38px;width:auto;}
.nav__links{display:flex;gap:2rem;align-items:center;list-style:none;}
.nav__links a{font-size:0.88rem;font-weight:400;color:var(--muted);transition:color 0.15s;}
.nav__links a:hover,.nav__links a.active{color:var(--pp);}
.nav__cta{background:var(--pp);color:var(--cream)!important;padding:0.45rem 1.1rem;border-radius:var(--radius-lg);font-size:0.85rem!important;font-weight:500!important;transition:opacity 0.15s!important;}
.nav__cta:hover{opacity:0.88;}
.nav__hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px;}
.nav__hamburger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:all 0.2s;}
.nav__mobile{display:none;flex-direction:column;background:var(--cream);border-top:0.5px solid var(--border);position:fixed;top:62px;left:0;right:0;z-index:99;padding:1rem 1.5rem 1.5rem;box-shadow:var(--shadow);}
.nav__mobile a{padding:0.7rem 0;font-size:1rem;font-weight:400;color:var(--ink-soft);border-bottom:0.5px solid var(--border);display:block;}
.nav__mobile a:last-child{border-bottom:none;}
.nav__mobile.open{display:flex;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:8px;padding:0.75rem 1.75rem;border-radius:var(--radius-lg);font-family:var(--sans);font-size:0.95rem;font-weight:500;cursor:pointer;border:none;transition:opacity 0.15s,transform 0.1s;}
.btn:active{transform:scale(0.98);}
.btn--primary{background:var(--pp);color:var(--cream);}
.btn--primary:hover{opacity:0.88;}
.btn--outline{background:transparent;color:var(--pp);border:1.5px solid var(--pp);}
.btn--outline:hover{background:var(--pp-light);}
.btn--teal{background:var(--teal);color:var(--white);}
.btn--teal:hover{opacity:0.88;}
.btn--full{width:100%;justify-content:center;}
.btn:disabled{opacity:0.4;cursor:default;transform:none;}

/* BADGE */
.badge{display:inline-block;font-size:0.72rem;font-weight:500;padding:3px 10px;border-radius:20px;}
.badge--pp{background:var(--pp-light);color:var(--pp-dark);}
.badge--teal{background:var(--teal-light);color:var(--teal-dark);}
.badge--coral{background:var(--coral-light);color:var(--coral-dark);}
.badge--esm{background:#EAF3DE;color:#27500A;}

/* TABS */
.tabs{display:flex;border-bottom:0.5px solid var(--border);overflow-x:auto;}
.tab-btn{padding:0.65rem 1rem;font-size:0.85rem;font-weight:400;color:var(--muted);border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;font-family:var(--sans);transition:color 0.15s;}
.tab-btn.active{color:var(--pp);border-bottom-color:var(--pp);font-weight:500;}
.tab-panel{display:none;padding:1.5rem 0 0;}
.tab-panel.active{display:block;}

/* FORM */
.input{width:100%;padding:0.65rem 0.9rem;border:0.5px solid var(--border);border-radius:var(--radius-sm);font-size:0.9rem;font-family:var(--sans);color:var(--ink);background:var(--cream);transition:border-color 0.15s;}
.input:focus{outline:none;border-color:var(--pp);}
.textarea{min-height:90px;resize:vertical;}
.label{font-size:0.78rem;font-weight:500;color:var(--muted);margin-bottom:5px;display:block;}
.err-msg{font-size:0.78rem;color:var(--coral-dark);margin-top:5px;display:none;}
.success-msg{background:var(--teal-light);border-radius:var(--radius-sm);padding:0.75rem 1rem;font-size:0.85rem;color:var(--teal-dark);text-align:center;display:none;margin-bottom:1rem;}

/* LANG TOGGLE */
.lang-toggle{display:flex;gap:6px;}
.lang-btn{font-size:0.72rem;font-weight:500;padding:4px 11px;border-radius:20px;border:0.5px solid rgba(255,255,255,0.25);background:none;cursor:pointer;font-family:var(--sans);color:rgba(255,255,255,0.5);transition:all 0.15s;}
.lang-btn.active{background:var(--white);color:var(--ink);border-color:var(--white);}

/* PROGRESS */
.progress-wrap{margin-bottom:1rem;}
.progress-labels{display:flex;justify-content:space-between;font-size:0.78rem;color:var(--muted);margin-bottom:5px;}
.progress-bar{height:7px;background:var(--border);border-radius:20px;overflow:hidden;}
.progress-fill{height:100%;background:var(--pp);border-radius:20px;transition:width 0.4s ease;}

/* HISTORY */
.history-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:0.6rem 0.9rem;border-radius:var(--radius-sm);background:var(--cream);border:0.5px solid var(--border);margin-bottom:6px;font-size:0.83rem;}
.h-date{color:var(--ink);}
.h-dur{color:var(--muted);font-size:0.78rem;}

/* REVIEW CARD */
.review-card{border:0.5px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;background:var(--cream);margin-bottom:10px;}
.review-card__top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:5px;}
.review-card__name{font-weight:500;font-size:0.9rem;color:var(--ink);}
.review-card__meta{font-size:0.75rem;color:var(--muted);}
.review-card__text{font-size:0.875rem;color:var(--ink-soft);line-height:1.6;}
.star-display{color:#EF9F27;font-size:0.85rem;margin-bottom:5px;}
.star-selector{display:flex;gap:4px;margin-bottom:0.75rem;}
.star-btn{font-size:1.4rem;cursor:pointer;color:var(--border);background:none;border:none;padding:0;line-height:1;transition:color 0.1s;}
.star-btn.lit{color:#EF9F27;}

/* FOOTER */
.footer{background:var(--ink);color:rgba(255,255,255,0.55);padding:3rem 0 0;font-size:0.85rem;}
.footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:3rem;margin-bottom:2.5rem;}
.footer__logo{margin-bottom:0.75rem;}
.footer__logo img{height:38px;width:auto;filter:brightness(0) invert(1);opacity:0.8;}
.footer__tagline{font-size:0.8rem;line-height:1.6;color:rgba(255,255,255,0.4);}
.footer__col h4{font-family:var(--sans);font-size:0.72rem;font-weight:500;color:rgba(255,255,255,0.35);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:1rem;}
.footer__col ul{list-style:none;display:flex;flex-direction:column;gap:0.6rem;}
.footer__col ul a{color:rgba(255,255,255,0.55);transition:color 0.15s;font-size:0.85rem;}
.footer__col ul a:hover{color:var(--white);}
.footer__bottom{border-top:0.5px solid rgba(255,255,255,0.08);padding:1.25rem 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.5rem;font-size:0.78rem;color:rgba(255,255,255,0.3);}

/* NOTE */
.note{font-size:0.8rem;color:var(--teal-dark);background:var(--teal-light);border-radius:var(--radius-sm);padding:0.65rem 0.9rem;border-left:2.5px solid var(--teal);line-height:1.55;margin-bottom:1rem;}
.note--pp{color:var(--pp-dark);background:var(--pp-light);border-left-color:var(--pp);}

/* UTIL */
.mt-xs{margin-top:0.4rem;}.mt-sm{margin-top:0.75rem;}.mt-md{margin-top:1rem;}.mt-lg{margin-top:1.5rem;}.mt-xl{margin-top:2rem;}
.divider{height:0.5px;background:var(--border);margin:1.25rem 0;}
.text-muted{color:var(--muted);}

/* RESPONSIVE */
@media(max-width:700px){
  .nav__links{display:none;}
  .nav__hamburger{display:flex;}
  .footer__grid{grid-template-columns:1fr;gap:2rem;}
  .section{padding:3.5rem 0;}
}
