/* Cheese.Graduation — Premium Editorial UI 2026
   Visual-only override layer. Keeps all existing application logic intact. */
:root{
  --cg26-navy:#0b2b42;
  --cg26-navy-2:#113850;
  --cg26-ink:#102b3f;
  --cg26-ivory:#f7f2e8;
  --cg26-paper:#fffdf8;
  --cg-gold:#c9a35a;
  --cg26-gold-soft:#ead8ad;
  --cg26-muted:#71808a;
  --cg26-line:rgba(16,43,63,.12);
  --cg26-shadow:0 28px 90px rgba(9,35,54,.12);
  --cg26-shadow-soft:0 16px 46px rgba(9,35,54,.08);
  --cg26-ease:cubic-bezier(.22,1,.36,1);
}
html{scroll-behavior:smooth}
body{background:var(--cg26-ivory);color:var(--cg26-ink)}
::selection{background:var(--cg26-gold-soft);color:var(--cg26-navy)}

/* Subtle editorial atmosphere */
body.page-pricing,body.page-library,body.page-booking,body.portal-login,body.portal-schedule,body.portal-admin{background:
  radial-gradient(circle at 88% 2%,rgba(201,163,90,.10),transparent 28rem),
  radial-gradient(circle at 10% 26%,rgba(11,43,66,.04),transparent 30rem),
  var(--cg26-ivory)}

/* Unified focus */
body.page-pricing :is(a,button,input,select,textarea):focus-visible,
body.page-library :is(a,button,input,select,textarea):focus-visible,
body.page-booking :is(a,button,input,select,textarea):focus-visible,
body.portal-login :is(a,button,input,select,textarea):focus-visible,
body.portal-schedule :is(a,button,input,select,textarea):focus-visible,
body.portal-admin :is(a,button,input,select,textarea):focus-visible{outline:2px solid var(--cg26-gold);outline-offset:4px}

/* ===== PUBLIC: PRICING ===== */
body.page-pricing .price-topbar{top:14px;width:min(1360px,calc(100% - 32px));margin:0 auto;border:1px solid rgba(255,255,255,.62);border-radius:24px;background:rgba(255,253,248,.82);box-shadow:0 14px 44px rgba(9,35,54,.08);backdrop-filter:blur(20px) saturate(125%);-webkit-backdrop-filter:blur(20px) saturate(125%)}
body.page-pricing .price-logo-shell{border:0;background:transparent;box-shadow:none;padding:4px 8px}
body.page-pricing .price-nav a{letter-spacing:.1em}
body.page-pricing .price-book-cta{background:var(--cg26-navy);box-shadow:none;border:1px solid rgba(255,255,255,.06)}
body.page-pricing .pricing-hero{margin-top:-78px;padding-top:180px;padding-bottom:120px;background:
  radial-gradient(circle at 85% 10%,rgba(201,163,90,.24),transparent 30rem),
  radial-gradient(circle at 18% 84%,rgba(96,135,158,.17),transparent 26rem),
  linear-gradient(135deg,#071f31 0%,#0b2b42 50%,#123c55 100%)}
body.page-pricing .pricing-hero::after{content:"cheese.graduation";right:-3vw;bottom:-4vw;font-size:clamp(72px,11vw,180px);opacity:1;color:rgba(255,255,255,.025);white-space:nowrap}
body.page-pricing .pricing-hero-inner{width:min(1260px,100%);align-items:center}
body.page-pricing .pricing-hero h1{font-size:clamp(58px,7.4vw,106px);line-height:.91;letter-spacing:-.035em}
body.page-pricing .pricing-hero h1 em{color:#e3c77f}
body.page-pricing .pricing-hero-card{border-radius:30px;border:1px solid rgba(255,255,255,.16);background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.045));box-shadow:0 35px 95px rgba(0,0,0,.22)}
body.page-pricing .primary-action{background:#e3c77f;color:#0b2b42}
body.page-pricing .secondary-action{background:rgba(255,255,255,.055)}
body.page-pricing .pricing-section{width:min(1260px,calc(100% - 44px))}
body.page-pricing .section-heading-modern h2{letter-spacing:-.025em}
body.page-pricing .team-price-list{gap:18px}
body.page-pricing .team-price-row{border-radius:28px;background:rgba(255,253,248,.88);box-shadow:var(--cg26-shadow-soft);border-color:rgba(16,43,63,.10);padding:30px}
body.page-pricing .team-price-row:nth-child(1){background:linear-gradient(145deg,#0a2a41,#123c54)}
body.page-pricing .team-price-row:nth-child(4){background:#fffaf4;border-color:rgba(201,163,90,.25)}
body.page-pricing .team-price-row:hover{transform:translateY(-7px);box-shadow:var(--cg26-shadow);border-color:rgba(201,163,90,.45)}
body.page-pricing .province-tool-card{border-radius:32px;background:linear-gradient(135deg,#0b2b42,#123c54);box-shadow:0 34px 86px rgba(9,35,54,.18)}
body.page-pricing .province-details,body.page-pricing .travel-notes-grid article{border-radius:22px}
body.page-pricing .pricing-bottom-cta{background:linear-gradient(135deg,#0b2b42,#123c54)}

/* ===== PUBLIC: LIBRARY ===== */
body.page-library .library-nav{top:14px;left:50%;transform:translateX(-50%);width:min(1360px,calc(100% - 32px));border:1px solid rgba(255,255,255,.65);border-radius:24px;background:rgba(255,253,248,.84);box-shadow:0 14px 44px rgba(9,35,54,.08);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
body.page-library .library-hero{padding-top:170px;padding-bottom:80px;position:relative;overflow:hidden}
body.page-library .library-hero::before{content:"ARCHIVE / 2026";position:absolute;right:5vw;top:150px;font-size:10px;font-weight:800;letter-spacing:.22em;color:rgba(16,43,63,.4);writing-mode:vertical-rl}
body.page-library .library-hero::after{content:"cheese.graduation";position:absolute;left:-1vw;bottom:-22px;font:600 clamp(60px,10vw,160px)/1 'Playfair Display',serif;color:rgba(11,43,66,.035);white-space:nowrap;pointer-events:none}
body.page-library .library-hero h1{font-size:clamp(66px,9vw,128px);line-height:.88;letter-spacing:-.045em}
body.page-library .library-shell{width:min(1400px,calc(100% - 40px));border-radius:34px;background:rgba(255,253,248,.68);border:1px solid rgba(16,43,63,.08);box-shadow:var(--cg26-shadow-soft);padding:22px}
body.page-library .library-toolbar{border-radius:18px;background:rgba(255,255,255,.68);padding:14px 18px}
body.page-library .library-masonry{gap:14px}
body.page-library .library-item,body.page-library .library-masonry figure{border-radius:22px;overflow:hidden;box-shadow:0 10px 32px rgba(9,35,54,.08)}
body.page-library .library-bottom{margin-top:90px;background:linear-gradient(135deg,#0a293f,#123c55);border-radius:36px 36px 0 0}
body.page-library .library-lightbox{backdrop-filter:blur(18px)}

/* ===== PUBLIC: BOOKING / CONTACT ===== */
body.page-booking .topbar,body.page-booking .booking-nav,body.page-booking header.hero~*{--noop:1}
body.page-booking .hero{background:
 radial-gradient(circle at 83% 18%,rgba(201,163,90,.20),transparent 27rem),
 linear-gradient(135deg,#071f31,#0b2b42 58%,#123c55);border-radius:0 0 46px 46px;overflow:hidden}
body.page-booking .hero::after{content:"cheese.graduation";position:absolute;right:-2vw;bottom:-20px;font:600 clamp(70px,11vw,170px)/1 'Playfair Display',serif;color:rgba(255,255,255,.035);white-space:nowrap;pointer-events:none}
body.page-booking .hero h1{letter-spacing:-.035em}
body.page-booking :is(.booking-card,.step,.summary-card,.form-card,.price-card,.notice-card){border-radius:26px!important;box-shadow:var(--cg26-shadow-soft)!important;border-color:rgba(16,43,63,.10)!important;background:rgba(255,253,248,.88)!important}
body.page-booking :is(input,select,textarea){border-radius:14px!important;background:#fff!important}
body.page-booking :is(.primary,.primary-btn,.submit-btn,.booking-submit){background:var(--cg26-navy)!important;border-radius:999px!important}

/* ===== LOGIN ===== */
body.portal-login{min-height:100svh;background:#071f31;overflow-x:hidden}
body.portal-login .topbar{position:fixed;z-index:10;top:18px;left:50%;transform:translateX(-50%);width:min(1320px,calc(100% - 32px));height:66px;padding:0 20px;border:1px solid rgba(255,255,255,.14);border-radius:22px;background:rgba(7,31,49,.55);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:#f7f2e8}
body.portal-login .topbar .brand{width:154px;padding:6px 10px;border-radius:13px;background:rgba(255,253,248,.93)}
body.portal-login .topbar .portal-label{border-left-color:rgba(255,255,255,.18);color:rgba(255,255,255,.72)}
body.portal-login .topbar .home-link{color:rgba(255,255,255,.76)}
body.portal-login main{max-width:none;padding:106px 20px 20px;min-height:100svh;display:grid;place-items:center}
body.portal-login .auth-layout{position:relative;width:min(1320px,100%);min-height:min(760px,calc(100svh - 126px));margin:0;gap:0;grid-template-columns:1.28fr .72fr;border:1px solid rgba(255,255,255,.11);border-radius:36px;overflow:hidden;background:#0b2b42;box-shadow:0 50px 130px rgba(0,0,0,.32)}
body.portal-login .auth-story{position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(42px,6vw,82px);color:white;background:
 linear-gradient(180deg,rgba(7,31,49,.08) 20%,rgba(7,31,49,.88) 100%),
 linear-gradient(90deg,rgba(7,31,49,.15),rgba(7,31,49,.02)),
 url('../../images/hero/hero-01.webp') center 35%/cover no-repeat}
body.portal-login .auth-story::before{content:"STUDIO / ACCESS";position:absolute;top:36px;left:42px;font-size:9px;font-weight:800;letter-spacing:.24em;color:rgba(255,255,255,.72)}
body.portal-login .auth-story::after{content:"CHEESE.GRADUATION";position:absolute;right:24px;top:36px;font-size:9px;font-weight:800;letter-spacing:.18em;color:#e3c77f}
body.portal-login .auth-story .eyebrow{color:#e3c77f}
body.portal-login .auth-story h1{max-width:720px;margin:14px 0 16px;font-size:clamp(52px,6vw,92px);line-height:.93;letter-spacing:-.035em;color:#fffaf0;text-shadow:0 14px 50px rgba(0,0,0,.28)}
body.portal-login .auth-story p{max-width:520px;margin:0;color:rgba(255,255,255,.72);font-size:15px;line-height:1.8}
body.portal-login .auth-photo{display:none}
body.portal-login .auth-card{align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:clamp(34px,4.5vw,64px);border:0;border-radius:0;background:#fffdf8;box-shadow:none}
body.portal-login .auth-card>.eyebrow{color:#8b7445}
body.portal-login .auth-card h2{margin:12px 0 8px;font:600 clamp(34px,3vw,48px)/1.05 'Playfair Display',serif;letter-spacing:-.02em;color:var(--cg26-navy)}
body.portal-login .auth-card>p{margin-bottom:18px}
body.portal-login .auth-card label{margin:15px 0 0;color:#435d6f;font-size:12px}
body.portal-login .auth-card input{height:54px;padding:0 16px;border:1px solid rgba(16,43,63,.13);border-radius:14px;background:#fff;transition:border-color .2s,box-shadow .2s}
body.portal-login .auth-card input:focus{outline:0;border-color:#c9a35a;box-shadow:0 0 0 4px rgba(201,163,90,.12)}
body.portal-login .auth-card .primary{height:54px;margin-top:22px;border-radius:999px;background:linear-gradient(120deg,#0b2b42,#174862);box-shadow:0 14px 34px rgba(11,43,66,.18)}
body.portal-login .auth-divider{background:rgba(16,43,63,.1)}
body.portal-login .login-demos summary{color:#6d7b84}
body.portal-login .login-demos a{border-radius:999px;background:#fff}

/* ===== PHOTOGRAPHER SCHEDULE ===== */
body.portal-schedule .topbar{position:sticky;top:12px;z-index:30;width:min(1380px,calc(100% - 28px));margin:12px auto 0;height:70px;border:1px solid rgba(255,255,255,.72);border-radius:24px;background:rgba(255,253,248,.84);box-shadow:0 12px 38px rgba(9,35,54,.07);backdrop-filter:blur(20px)}
body.portal-schedule main{max-width:1500px;padding-top:50px}
body.portal-schedule .workspace-heading h1{font-size:clamp(42px,5vw,68px);letter-spacing:-.025em}
body.portal-schedule .stats{gap:16px}
body.portal-schedule .stats>div{border-radius:22px;border-color:rgba(16,43,63,.09);background:rgba(255,253,248,.9);box-shadow:var(--cg26-shadow-soft)}
body.portal-schedule .stats>div:first-child{background:linear-gradient(145deg,#0a2a41,#123c54)}
body.portal-schedule .calendar-panel,body.portal-schedule .agenda-panel{border-radius:28px;border-color:rgba(16,43,63,.09);background:rgba(255,253,248,.9);box-shadow:var(--cg26-shadow-soft)}
body.portal-schedule .day{border-radius:13px;background:#f5f4ef}
body.portal-schedule .day.selected{background:var(--cg26-navy)}
body.portal-schedule .event-card{border-radius:17px}
body.portal-schedule dialog{border-radius:28px}
body.portal-schedule .primary{border-radius:999px;background:var(--cg26-navy)}

/* ===== ADMIN ===== */
body.portal-admin{background:#f3efe6}
body.portal-admin .sidebar{background:linear-gradient(180deg,#09263a,#0c3148)!important;border-right:0!important;box-shadow:14px 0 44px rgba(9,35,54,.08)}
body.portal-admin .sidebar :is(a,button){border-radius:12px}
body.portal-admin .main{padding-top:34px}
body.portal-admin .topbar{padding:18px 20px;border-radius:24px;background:rgba(255,253,248,.82);border:1px solid rgba(255,255,255,.78);box-shadow:0 12px 40px rgba(9,35,54,.07);backdrop-filter:blur(20px)}
body.portal-admin .stats{gap:14px}
body.portal-admin .stat,body.portal-admin .panel,body.portal-admin .channel-strip>div,body.portal-admin .admin-card,body.portal-admin .cms-card{border-radius:22px!important;border-color:rgba(16,43,63,.09)!important;background:rgba(255,253,248,.92)!important;box-shadow:0 12px 38px rgba(9,35,54,.06)!important}
body.portal-admin .stat:first-child{background:linear-gradient(145deg,#0a2a41,#123c54)!important;color:#fff!important}
body.portal-admin :is(input,select,textarea){border-radius:12px!important}
body.portal-admin :is(.save-btn,.primary,.primary-btn){border-radius:999px!important;background:var(--cg26-navy)!important}
body.portal-admin .drawer{background:#f7f2e8;border-radius:28px 0 0 28px}
body.portal-admin .notify-popover{border-radius:24px;background:rgba(255,253,248,.96)}

@media(max-width:900px){
  body.page-pricing .price-topbar,body.page-library .library-nav{top:8px;width:calc(100% - 16px);border-radius:18px}
  body.portal-login .auth-layout{grid-template-columns:1fr;min-height:auto}
  body.portal-login .auth-story{min-height:380px;padding:40px 28px}
  body.portal-login .auth-card{padding:34px 28px 38px}
}
@media(max-width:600px){
  body.portal-login .topbar{top:8px;width:calc(100% - 16px);height:58px;border-radius:18px;padding:0 12px}
  body.portal-login .topbar .brand{width:118px}
  body.portal-login main{padding:78px 8px 8px}
  body.portal-login .auth-layout{border-radius:24px}
  body.portal-login .auth-story{min-height:330px;padding:34px 22px}
  body.portal-login .auth-story::before{top:20px;left:22px}
  body.portal-login .auth-story::after{display:none}
  body.portal-login .auth-story h1{font-size:46px}
  body.portal-login .auth-card{padding:28px 22px 30px}
  body.page-pricing .pricing-hero{margin-top:-70px;padding-top:150px;border-radius:0 0 28px 28px}
  body.page-pricing .pricing-section{width:min(100% - 28px,1260px)}
  body.page-library .library-shell{width:calc(100% - 20px);padding:10px;border-radius:24px}
  body.page-library .library-hero::before{display:none}
  body.portal-schedule .topbar{top:7px;margin-top:7px;width:calc(100% - 14px);border-radius:18px}
}

/* Booking page finishing layer */
body.page-booking .topbar{position:sticky;top:12px;z-index:60;width:min(1320px,calc(100% - 28px));min-height:68px;margin:12px auto 0;padding:0 22px;border:1px solid rgba(255,255,255,.72);border-radius:23px;background:rgba(255,253,248,.86);box-shadow:0 12px 38px rgba(9,35,54,.07);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
body.page-booking .topbar .brand{font-size:18px;font-weight:800;color:var(--cg26-navy)}
body.page-booking .topbar .brand i{color:#b38d49}
body.page-booking .topbar .back{font-size:11px;font-weight:700;color:#667884}
body.page-booking .page{width:min(1320px,calc(100% - 28px));margin:24px auto 0}
body.page-booking .hero{position:relative;min-height:510px;padding:clamp(34px,5vw,68px);display:grid;grid-template-columns:minmax(280px,.75fr) 1.25fr;align-items:center;gap:clamp(32px,6vw,78px);border-radius:34px}
body.page-booking .hero .photo-card{border-radius:28px!important;overflow:hidden;border:1px solid rgba(255,255,255,.13)!important;background:rgba(255,255,255,.07)!important;box-shadow:0 30px 80px rgba(0,0,0,.18)!important;backdrop-filter:blur(12px)}
body.page-booking .hero .photo{border-radius:22px!important;overflow:hidden}
body.page-booking .hero .hero-copy{color:#fffaf0}
body.page-booking .hero .hero-copy .eyebrow{color:#ddc27f}
body.page-booking .hero .hero-copy h1{font-size:clamp(54px,6.8vw,94px);line-height:.91;color:#fffaf0}
body.page-booking .hero .hero-copy h1 em{color:#ddc27f}
body.page-booking .hero .hero-copy p{max-width:670px;color:rgba(255,255,255,.68);font-size:14px;line-height:1.85}
body.page-booking .flow{gap:20px;margin-top:24px}
body.page-booking .panel{border-radius:30px!important;background:rgba(255,253,248,.92)!important;border:1px solid rgba(16,43,63,.08)!important;box-shadow:var(--cg26-shadow-soft)!important}
body.page-booking .steps-list{gap:10px}
body.page-booking .steps-list .step{min-height:118px;border-radius:20px!important;background:#f7f4ee!important;box-shadow:none!important}
body.page-booking .step-num{background:#0b2b42!important;color:#ead8ad!important}
body.page-booking .booking-type-tab,body.page-booking .duration-main,body.page-booking .half-slot,body.page-booking .package-option{border-radius:16px!important}
body.page-booking .booking-type-tab.active,body.page-booking .duration-main.active,body.page-booking .half-slot.active,body.page-booking .package-option.active{border-color:rgba(201,163,90,.6)!important;background:#fffaf0!important;box-shadow:0 8px 24px rgba(9,35,54,.06)!important}
body.page-booking .package-card,body.page-booking .grad-package-card,body.page-booking .message-panel,body.page-booking .availability-card{border-radius:24px!important}
body.page-booking .contact-btn{border-radius:999px!important}
body.page-booking .contact-btn.instagram{background:linear-gradient(120deg,#0b2b42,#174862)!important}

@media(max-width:760px){
  body.page-booking .topbar{top:7px;width:calc(100% - 14px);margin-top:7px;border-radius:18px;padding:0 14px}
  body.page-booking .page{width:calc(100% - 14px);margin-top:10px}
  body.page-booking .hero{grid-template-columns:1fr;min-height:auto;padding:22px;border-radius:24px;gap:22px}
  body.page-booking .hero .photo-card{max-width:100%}
  body.page-booking .hero .hero-copy h1{font-size:48px}
}


/* ===== Unified editorial heading system v9 ===== */
:root{
  --cg-title-gold:#d6b567;
  --cg-title-float:5.8s;
  --cg-title-accent-float:4.6s;
}

/* One display face for the important titles across every screen. */
body.page-home :is(.section-head h2,.gallery-title h2,.process-intro h2,.trust-copy h2,.final-cta h2,.directory-heading h1),
body.page-pricing :is(.pricing-hero h1,.section-heading-modern h2,.pricing-bottom-cta h2),
body.page-library :is(.library-hero h1,.library-bottom h2),
body.page-booking :is(.hero-copy h1,.panel>h2,.panel-heading h2),
body.portal-login :is(.auth-story h1,.auth-card h2),
body.portal-schedule :is(.workspace-heading h1,.panel-heading h2),
body.portal-admin .topbar h1{
  font-family:'Playfair Display',Georgia,serif!important;
  letter-spacing:-.035em;
  transform-origin:50% 70%;
  animation:cgUnifiedTitleFloat var(--cg-title-float) ease-in-out infinite;
  will-change:transform;
}

/* Gold second line: deliberately oversized and slightly overlapping the first line. */
body.page-home :is(.section-head h2,.gallery-title h2,.process-intro h2,.trust-copy h2,.final-cta h2,.directory-heading h1)>em,
body.page-pricing :is(.pricing-hero h1,.pricing-bottom-cta h2)>em,
body.page-library :is(.library-hero h1,.library-bottom h2)>em,
body.page-booking .hero-copy h1>em,
body.portal-login .auth-story h1>em{
  position:relative;
  z-index:2;
  display:block!important;
  width:max-content;
  max-width:110%;
  margin:-.18em auto 0;
  font-size:1.38em!important;
  line-height:.82!important;
  color:var(--cg-title-gold)!important;
  font-style:italic;
  letter-spacing:-.055em!important;
  text-shadow:0 10px 26px rgba(115,82,25,.18),0 2px 0 rgba(255,255,255,.08);
  animation:cgUnifiedAccentFloat var(--cg-title-accent-float) ease-in-out infinite;
  transform-origin:center center;
  will-change:transform;
}

/* Left-aligned hero pages keep their accent aligned with the title edge. */
body.page-pricing .pricing-hero h1>em,
body.page-booking .hero-copy h1>em,
body.page-library .library-hero h1>em,
body.portal-login .auth-story h1>em{
  margin-left:0;
  margin-right:0;
}

/* Preserve the dark/light contrast while making the accent language identical. */
body.page-home #process .process-intro h2{color:#0b2b42!important}
body.page-home #process .process-intro h2>em{color:var(--cg-title-gold)!important}
body.page-home .gallery-title h2>em,
body.page-home .trust-copy h2>em{color:#e0c27b!important}
body.page-pricing .pricing-hero h1>em,
body.page-booking .hero-copy h1>em,body.portal-login .auth-story h1>em{color:#e3c77f!important}

/* Slightly clearer continuous motion than the previous version, without a reveal jump. */
@keyframes cgUnifiedTitleFloat{
  0%,100%{transform:translate3d(0,0,0) rotate(-.15deg)}
  28%{transform:translate3d(0,-3px,0) rotate(.14deg)}
  58%{transform:translate3d(0,2px,0) rotate(-.08deg)}
  80%{transform:translate3d(0,-1px,0) rotate(.10deg)}
}
@keyframes cgUnifiedAccentFloat{
  0%,100%{transform:translate3d(0,0,0) rotate(-.35deg) scale(1)}
  32%{transform:translate3d(0,-4px,0) rotate(.22deg) scale(1.012)}
  66%{transform:translate3d(0,2px,0) rotate(-.12deg) scale(.998)}
}

/* Login / schedule / admin do not all have an <em> accent, but keep the same title character. */
body.portal-login .auth-story h1,
body.portal-login .auth-card h2,
body.portal-schedule .workspace-heading h1,
body.portal-schedule .panel-heading h2,
body.portal-admin .topbar h1{
  text-shadow:0 10px 28px rgba(9,35,54,.09);
}
body.portal-login .auth-story h1{color:#fffaf0!important;text-shadow:0 16px 44px rgba(0,0,0,.28)}
body.portal-schedule .workspace-heading h1 .gold{color:var(--cg-title-gold)!important}

@media(max-width:760px){
  body.page-home :is(.section-head h2,.gallery-title h2,.process-intro h2,.trust-copy h2,.final-cta h2,.directory-heading h1)>em,
  body.page-pricing :is(.pricing-hero h1,.pricing-bottom-cta h2)>em,
  body.page-library :is(.library-hero h1,.library-bottom h2)>em,
  body.page-booking .hero-copy h1>em,
  body.portal-login .auth-story h1>em{
    font-size:1.22em!important;
    max-width:100%;
    margin-top:-.08em;
  }
}
@media(prefers-reduced-motion:reduce){
  body.page-home :is(.section-head h2,.gallery-title h2,.process-intro h2,.trust-copy h2,.final-cta h2,.directory-heading h1),
  body.page-pricing :is(.pricing-hero h1,.section-heading-modern h2,.pricing-bottom-cta h2),
  body.page-library :is(.library-hero h1,.library-bottom h2),
  body.page-booking :is(.hero-copy h1,.panel>h2,.panel-heading h2),
  body.portal-login :is(.auth-story h1,.auth-card h2),
  body.portal-schedule :is(.workspace-heading h1,.panel-heading h2),
  body.portal-admin .topbar h1,
  body.page-home :is(.section-head h2,.gallery-title h2,.process-intro h2,.trust-copy h2,.final-cta h2,.directory-heading h1)>em,
  body.page-pricing :is(.pricing-hero h1,.pricing-bottom-cta h2)>em,
  body.page-library :is(.library-hero h1,.library-bottom h2)>em,
  body.page-booking .hero-copy h1>em,
  body.portal-login .auth-story h1>em{animation:none!important}
}


/* ===== v22 public child-page navigation position lock ===== */
body.page-pricing .price-topbar,
body.page-library .library-nav,
body.page-booking .topbar{
  position:fixed!important;
  z-index:100!important;
  top:16px!important;
  left:50%!important;
  right:auto!important;
  transform:translateX(-50%)!important;
  width:min(1420px,calc(100% - 32px))!important;
  min-height:66px!important;
  margin:0!important;
  padding:10px 12px 10px 16px!important;
  border:1px solid rgba(16,43,63,.08)!important;
  border-radius:24px!important;
  background:rgba(250,247,239,.91)!important;
  box-shadow:0 16px 46px rgba(9,35,54,.08)!important;
  backdrop-filter:blur(22px) saturate(120%)!important;
  -webkit-backdrop-filter:blur(22px) saturate(120%)!important;
}
body.page-pricing .price-logo-shell,
body.page-library .library-logo{
  width:158px!important;
  height:46px!important;
  padding:4px 8px!important;
  border:0!important;
  border-radius:14px!important;
  background:rgba(255,253,248,.93)!important;
  box-shadow:none!important;
}
body.page-pricing .price-nav,
body.page-library .library-nav nav{
  gap:6px!important;
}
body.page-pricing .price-nav a,
body.page-library .library-nav nav a{
  padding:10px 12px!important;
  border-radius:999px!important;
  font-size:10px!important;
  letter-spacing:.06em!important;
  text-transform:none!important;
}
body.page-pricing .price-book-cta,
body.page-library .library-book{
  min-height:46px!important;
  border-radius:999px!important;
  padding:0 16px!important;
}
body.page-booking .topbar{
  height:66px!important;
}
body.page-booking .page{
  padding-top:122px!important;
}
/* Keep hero spacing stable after converting the pricing bar from sticky to fixed. */
body.page-pricing .pricing-hero{
  margin-top:0!important;
  padding-top:164px!important;
}
body.page-library .library-hero{
  padding-top:164px!important;
}
@media(max-width:900px){
  body.page-pricing .price-topbar,
  body.page-library .library-nav,
  body.page-booking .topbar{
    top:8px!important;
    width:calc(100% - 16px)!important;
    min-height:60px!important;
    padding:8px 10px!important;
    border-radius:18px!important;
  }
  body.page-pricing .price-logo-shell,
  body.page-library .library-logo{
    width:124px!important;
    height:40px!important;
  }
  body.page-booking .topbar{
    height:60px!important;
  }
  body.page-pricing .pricing-hero{
    padding-top:132px!important;
  }
  body.page-library .library-hero{
    padding-top:126px!important;
  }
  body.page-booking .page{
    padding-top:92px!important;
  }
}
@media(max-width:620px){
  body.page-booking .topbar .brand{font-size:16px!important}
  body.page-booking .topbar .back{font-size:9px!important;white-space:nowrap}
}

/* =========================================================
   Booking selected-state contrast fix — v58
   Premium theme changes active controls to a cream surface;
   force readable dark text instead of inheriting the old white active text.
   ========================================================= */
body.page-booking .booking-type-tab.active,
body.page-booking .duration-main.active,
body.page-booking .half-slot.active,
body.page-booking .package-option.active{
  color:#17354f!important;
  text-shadow:none!important;
}
body.page-booking .booking-type-tab.active small,
body.page-booking .package-option.active small{
  color:#6f7c85!important;
  opacity:1!important;
}
body.page-booking .duration-main.active,
body.page-booking .half-slot.active{
  font-weight:900!important;
}
body.page-booking .duration-main.active:focus-visible,
body.page-booking .half-slot.active:focus-visible,
body.page-booking .booking-type-tab.active:focus-visible,
body.page-booking .package-option.active:focus-visible{
  outline:3px solid rgba(201,163,90,.32)!important;
  outline-offset:2px!important;
}


/* =========================================================
   Booking section background alignment fix — v59
   Make nested booking blocks sit fuller inside the main panel
   so the background no longer feels recessed/cut inward.
   ========================================================= */
body.page-booking .form-card{overflow:visible!important}
body.page-booking .package-card,
body.page-booking .availability-card,
body.page-booking .grad-package-panel,
body.page-booking #graduationSchedule{
  margin-left:-8px!important;
  margin-right:-8px!important;
  width:calc(100% + 16px)!important;
  border-radius:26px!important;
}
body.page-booking .package-card,
body.page-booking .availability-card,
body.page-booking .grad-package-panel,
body.page-booking #graduationSchedule{
  border:1px solid rgba(16,43,63,.08)!important;
  background:#f5f7fa!important;
  box-shadow:0 10px 28px rgba(9,35,54,.04)!important;
}
body.page-booking .package-card,
body.page-booking .availability-card{padding:18px 16px!important}
body.page-booking .grad-package-panel,
body.page-booking #graduationSchedule{padding:18px!important}
body.page-booking .package-card + .availability-card,
body.page-booking .grad-package-panel + #graduationSchedule,
body.page-booking #graduationSchedule + .availability-card{margin-top:16px!important}

@media(max-width:760px){
  body.page-booking .package-card,
  body.page-booking .availability-card,
  body.page-booking .grad-package-panel,
  body.page-booking #graduationSchedule{
    margin-left:-6px!important;
    margin-right:-6px!important;
    width:calc(100% + 12px)!important;
    border-radius:22px!important;
  }
  body.page-booking .package-card,
  body.page-booking .availability-card{padding:16px 14px!important}
  body.page-booking .grad-package-panel,
  body.page-booking #graduationSchedule{padding:16px 14px!important}
}

/* =========================================================
   Booking nested section background removal — v60
   Remove the large wrapper surfaces entirely; keep only the
   actual controls/cards inside so there is no recessed panel.
   ========================================================= */
body.page-booking .package-card,
body.page-booking .availability-card,
body.page-booking .grad-package-panel,
body.page-booking #graduationSchedule{
  width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
}
body.page-booking .package-card,
body.page-booking .availability-card{
  padding:16px 0!important;
}
body.page-booking .grad-package-panel,
body.page-booking #graduationSchedule{
  padding:16px 0!important;
}
body.page-booking .package-card + .availability-card,
body.page-booking .grad-package-panel + #graduationSchedule,
body.page-booking #graduationSchedule + .availability-card{
  margin-top:12px!important;
}

@media(max-width:760px){
  body.page-booking .package-card,
  body.page-booking .availability-card,
  body.page-booking .grad-package-panel,
  body.page-booking #graduationSchedule{
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    border-radius:0!important;
  }
}

/* =========================================================
   Booking form inner-surface removal — v61
   Remove the extra cream/shadow layer wrapping everything
   from "Thợ muốn chụp" downward. Keep the main outer panel.
   ========================================================= */
body.page-booking #messageForm.form-card{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding-left:0!important;
  padding-right:0!important;
}
