plans.less 30 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199
  1. @z-index-plans-new-tabs: 1;
  2. @z-index-group-member-picker-list: 1;
  3. @z-index-plans-new-tabs-content: 0;
  4. @highlighted-heading-line-height: (@line-height-03 / 1rem) * 16px; // convert to px
  5. @highlighted-heading-padding-vertical: @spacing-02;
  6. @highlighted-heading-height: (
  7. @highlighted-heading-line-height + (2 * @highlighted-heading-padding-vertical)
  8. );
  9. @switcher-container-margin-bottom: @highlighted-heading-height + @spacing-10;
  10. @nondiscounted-price-element-height: var(--line-height-02);
  11. @group-member-picker-height: 24px;
  12. @group-member-picker-top-height: 36px;
  13. @group-member-picker-sm-width: 50%;
  14. @group-member-picker-md-width: 25%;
  15. @group-member-picker-min-width: 234px;
  16. @container-plans-responsive-width: 95%;
  17. @table-4-column-width: 25%;
  18. @table-5-column-width: 20%;
  19. .plans-new-design {
  20. padding-top: var(--header-height);
  21. .container {
  22. padding: 0 var(--spacing-06);
  23. @media (min-width: @screen-sm-min) {
  24. width: @container-plans-responsive-width;
  25. }
  26. @media (min-width: @screen-xl-min) {
  27. width: @container-xl;
  28. }
  29. .geo-banner-container {
  30. margin-top: var(--spacing-08);
  31. }
  32. .plans-new-design-content-spacing {
  33. margin-top: var(--spacing-16);
  34. }
  35. .interstitial-new-design-content-spacing {
  36. margin-top: var(--spacing-13);
  37. }
  38. }
  39. .main-heading-section {
  40. text-align: center;
  41. max-width: 885px;
  42. margin-left: auto;
  43. margin-right: auto;
  44. @media (max-width: @screen-xs-max) {
  45. text-align: left;
  46. padding: 0 16px;
  47. }
  48. .plans-page-heading {
  49. margin-top: 8px;
  50. margin-bottom: unset;
  51. font-size: 3rem;
  52. font-weight: 600;
  53. line-height: 64px;
  54. @media (max-width: @screen-xs-max) {
  55. font-size: 2.25rem;
  56. line-height: 48px;
  57. padding-right: 5rem;
  58. }
  59. }
  60. .plans-page-sub-heading {
  61. font-size: 1.125rem;
  62. line-height: 24px;
  63. margin-top: 16px;
  64. margin-bottom: unset;
  65. }
  66. }
  67. .plans-new-content {
  68. display: flex;
  69. flex-direction: column;
  70. align-items: center;
  71. @media (min-width: @screen-sm-min) {
  72. border-left: 1px solid var(--neutral-20);
  73. border-right: 1px solid var(--neutral-20);
  74. border-bottom: 1px solid var(--neutral-20);
  75. border-radius: 8px;
  76. }
  77. // this is the border between the tabs and the content, specifically on the left and right side
  78. // this is necessary to enable top border radius on the plans-new-content
  79. &::before {
  80. content: '';
  81. display: block;
  82. z-index: @z-index-plans-new-tabs-content;
  83. position: absolute;
  84. top: -1px; // make border overlap with the border on .plans-new-tabs
  85. width: 100%;
  86. height: 20px; // arbitrary height since it's transparent, make sure that it's bigger than border radius
  87. background: transparent;
  88. border-top: 1px solid var(--neutral-20);
  89. @media (min-width: @screen-sm-min) {
  90. border-top-left-radius: 8px;
  91. border-top-right-radius: 8px;
  92. }
  93. }
  94. }
  95. .plans-new-tabs-container {
  96. z-index: @z-index-plans-new-tabs;
  97. margin-top: var(--spacing-16);
  98. // explicit padding to tell that the bottom left and bottom right
  99. // does not have bottom border defined in .plans-new-tabs
  100. // technically unnecessary because padding is already defined in bootstrap column
  101. padding: 0 16px;
  102. }
  103. .plans-new-tabs {
  104. display: flex;
  105. justify-content: center;
  106. gap: 8px;
  107. border-bottom: 1px solid var(--neutral-20);
  108. .plans-new-tab {
  109. cursor: pointer;
  110. font-size: 16px;
  111. font-weight: 600;
  112. border-top-right-radius: 8px;
  113. border-top-left-radius: 8px;
  114. .plans-new-tab-link {
  115. border: unset;
  116. display: flex;
  117. align-items: center;
  118. color: var(--neutral-70);
  119. margin: 0;
  120. border-top-right-radius: 8px;
  121. border-top-left-radius: 8px;
  122. border: 1px solid var(--neutral-20);
  123. padding: var(--spacing-05) var(--spacing-08);
  124. gap: var(--spacing-04);
  125. &:focus {
  126. background-color: unset;
  127. outline: 0;
  128. }
  129. &:hover {
  130. background-color: var(--neutral-20);
  131. }
  132. // tab navigation focus style
  133. &:focus-visible {
  134. .box-shadow-button-input();
  135. outline: 0;
  136. }
  137. .group-discount-bubble {
  138. padding: var(--spacing-01) var(--spacing-04);
  139. background-color: var(--green-10);
  140. color: var(--green-50);
  141. border-radius: var(--border-radius-full-new);
  142. font-family: 'DM Mono', monospace;
  143. font-feature-settings: 'ss05';
  144. font-size: var(--font-size-01);
  145. line-height: var(--line-height-01);
  146. font-weight: 500;
  147. @media (max-width: @screen-xs-max) {
  148. display: none;
  149. }
  150. }
  151. @media (max-width: @screen-xs-max) {
  152. font-size: var(--font-size-02);
  153. line-height: var(--line-height-02);
  154. padding: var(--spacing-05);
  155. gap: var(--spacing-02);
  156. }
  157. }
  158. &.active {
  159. .plans-new-tab-link {
  160. border: 1px solid white;
  161. position: relative;
  162. color: var(--green-50);
  163. // remove the border on tab focus
  164. &:focus-visible {
  165. &::before {
  166. content: unset;
  167. }
  168. }
  169. &::before {
  170. content: '';
  171. position: absolute;
  172. background: border-box
  173. linear-gradient(
  174. to bottom,
  175. @green-50 0%,
  176. @neutral-20 85%,
  177. @neutral-20 100%
  178. );
  179. -webkit-mask:
  180. linear-gradient(white 0 0) padding-box,
  181. linear-gradient(white 0 0);
  182. mask:
  183. linear-gradient(white 0 0) padding-box,
  184. linear-gradient(white 0 0);
  185. -webkit-mask-composite: xor;
  186. mask-composite: exclude;
  187. border-top-right-radius: 8px;
  188. border-top-left-radius: 8px;
  189. border: 1px solid transparent;
  190. border-bottom: 1px solid white;
  191. // make the border overlap with the .plans-new-tab-link border
  192. top: 0;
  193. bottom: -2px;
  194. left: -1px;
  195. right: -1px;
  196. }
  197. &:hover {
  198. background-color: unset;
  199. }
  200. }
  201. .plans-new-discount-badge {
  202. background-color: var(--green-10);
  203. color: var(--green-60);
  204. }
  205. }
  206. }
  207. }
  208. .plans-new-period-switcher-container {
  209. position: relative;
  210. display: inline-flex;
  211. background-color: var(--neutral-10);
  212. border-radius: var(--border-radius-full-new);
  213. padding: var(--spacing-03);
  214. margin-top: var(--spacing-09);
  215. margin-bottom: @switcher-container-margin-bottom;
  216. gap: var(--spacing-04);
  217. @media (max-width: @screen-xs-max) {
  218. margin-bottom: var(--spacing-09);
  219. }
  220. label {
  221. display: inline-flex;
  222. align-items: center;
  223. margin: 0;
  224. font-size: var(--font-size-05);
  225. font-weight: 600;
  226. line-height: var(--line-height-04);
  227. text-align: center;
  228. padding: var(--spacing-01) var(--spacing-04);
  229. border-radius: var(--border-radius-full-new);
  230. &:hover {
  231. background-color: var(--neutral-20);
  232. cursor: pointer;
  233. }
  234. }
  235. input[type='radio'] {
  236. position: absolute;
  237. left: -9999px;
  238. &:focus,
  239. &:focus-visible {
  240. outline: 0;
  241. }
  242. }
  243. input[type='radio']:focus-visible + label,
  244. input[type='radio']:checked:focus-visible + label {
  245. .box-shadow-button-input();
  246. }
  247. input[type='radio']:checked + label {
  248. background-color: var(--green-50);
  249. color: white;
  250. box-shadow: 0px 2px 4px 0px rgba(30, 37, 48, 0.16);
  251. .plans-new-discount-badge {
  252. background-color: var(--green-10);
  253. color: var(--green-60);
  254. }
  255. }
  256. .plans-new-discount-badge {
  257. margin-left: var(--spacing-03);
  258. }
  259. }
  260. .plans-new-discount-badge {
  261. font-size: var(--font-size-01);
  262. font-family: 'DM Mono', monospace;
  263. padding: 2px 8px;
  264. height: 20px;
  265. border-radius: 10px;
  266. background-color: var(--neutral-70);
  267. color: white;
  268. display: flex;
  269. align-items: center;
  270. font-weight: 500;
  271. line-height: var(--line-height-01);
  272. }
  273. .plans-new-tab-content {
  274. width: 100%;
  275. border: none;
  276. padding-top: 0;
  277. @media (max-width: @screen-xs-min) {
  278. padding: 0;
  279. }
  280. }
  281. .plans-new-mobile {
  282. display: none;
  283. @media (max-width: @screen-xs-max) {
  284. display: block;
  285. }
  286. }
  287. .plans-new-desktop {
  288. display: block;
  289. @media (max-width: @screen-xs-max) {
  290. display: none;
  291. }
  292. }
  293. .plans-new-table {
  294. width: 100%;
  295. // keep the borders separate to help with spacing and alignment in the CTAs
  296. border-collapse: separate;
  297. border-spacing: 0;
  298. th,
  299. td {
  300. width: @table-4-column-width;
  301. }
  302. }
  303. .plans-new-table-student {
  304. margin-left: @table-4-column-width / 2;
  305. }
  306. .plans-new-table-student-verification {
  307. font-weight: 600;
  308. font-size: var(--font-size-01);
  309. text-align: center;
  310. }
  311. .plans-new-table-group {
  312. margin-top: @spacing-11 + @highlighted-heading-height;
  313. }
  314. thead th {
  315. position: relative;
  316. padding: var(--spacing-06) var(--spacing-08) var(--spacing-04)
  317. var(--spacing-08);
  318. font-size: var(--font-size-05);
  319. font-weight: 600;
  320. line-height: var(--line-height-04);
  321. color: var(--neutral-90);
  322. text-align: center;
  323. @media (max-width: @screen-md-max) {
  324. padding: var(--spacing-05) var(--spacing-05) 0 var(--spacing-05);
  325. }
  326. }
  327. .plans-new-table-subheader {
  328. vertical-align: top;
  329. padding: 0 var(--spacing-08);
  330. @media (max-width: @screen-md-max) {
  331. padding: 0 var(--spacing-05);
  332. }
  333. &.plans-new-table-icon-cta-cell,
  334. &.plans-subheader-monthly-cta-swapped {
  335. vertical-align: bottom;
  336. }
  337. }
  338. .plans-new-table-cta-row {
  339. td {
  340. padding-bottom: var(--spacing-06);
  341. @media (max-width: @screen-md-max) {
  342. padding-bottom: var(--spacing-05);
  343. }
  344. // use transparent borders to use the same spacing as highlighted cells
  345. &:not(.plans-new-table-highlighted-cell) {
  346. border-right: var(--border-width-base) solid transparent;
  347. border-left: var(--border-width-base) solid transparent;
  348. }
  349. }
  350. .btn-block + .btn-block {
  351. margin-top: var(--spacing-04);
  352. }
  353. }
  354. .plans-new-table-header-grid-container {
  355. display: flex;
  356. flex-direction: column;
  357. align-items: center;
  358. s,
  359. .match-original-price-height {
  360. font-size: var(--font-size-02);
  361. line-height: @nondiscounted-price-element-height;
  362. color: var(--neutral-60);
  363. font-weight: 600;
  364. }
  365. .plans-new-table-header-price {
  366. font-size: var(--font-size-08);
  367. font-weight: 600;
  368. line-height: var(--line-height-07);
  369. color: var(--neutral-90);
  370. }
  371. .plans-new-table-header-price-unit {
  372. font-size: var(--font-size-02);
  373. line-height: var(--line-height-02);
  374. text-align: center;
  375. }
  376. .plans-new-table-cta {
  377. margin-top: auto;
  378. a:nth-child(2) {
  379. margin-top: var(--spacing-04);
  380. }
  381. }
  382. .plans-new-table-header-icon {
  383. font-size: 56px;
  384. color: var(--neutral-90);
  385. }
  386. }
  387. .plans-new-table-header-price-unit-total {
  388. font-size: var(--font-size-01);
  389. line-height: var(--line-height-01);
  390. }
  391. .plans-new-table-header-desc {
  392. margin-top: var(--spacing-05);
  393. margin-bottom: var(--spacing-08);
  394. font-size: var(--font-size-02);
  395. line-height: var(--line-height-02);
  396. }
  397. .plans-new-group-member-picker {
  398. .plans-new-group-member-picker-text {
  399. font-size: var(--font-size-02);
  400. line-height: var(--line-height-02);
  401. font-weight: 600;
  402. margin-bottom: var(--spacing-02);
  403. }
  404. .plans-new-group-member-picker-form {
  405. position: relative;
  406. .plans-new-group-member-picker-button {
  407. width: 100%;
  408. background-color: white;
  409. border-radius: var(--border-radius-base-new);
  410. border: 1px solid var(--neutral-60);
  411. display: flex;
  412. align-items: center;
  413. justify-content: space-between;
  414. padding: var(--spacing-01) var(--spacing-03);
  415. margin-bottom: var(--spacing-04);
  416. height: @group-member-picker-height;
  417. font-size: var(--font-size-02);
  418. line-height: var(--line-height-02);
  419. &[aria-expanded='true'] {
  420. i {
  421. transform: rotate(180deg);
  422. transition: transform 0.35s ease;
  423. }
  424. }
  425. &[aria-expanded='false'] {
  426. i {
  427. transition: transform 0.35s ease;
  428. }
  429. }
  430. &[data-ol-plans-new-group-member-picker-button='group-all'] {
  431. height: @group-member-picker-top-height;
  432. }
  433. }
  434. ul.plans-new-group-member-picker-list {
  435. list-style-type: none;
  436. margin-bottom: 0;
  437. overflow: auto; // to enable box-shadow
  438. box-shadow: 0px 2px 4px 0px rgba(30, 37, 48, 0.16);
  439. padding: var(--spacing-02);
  440. position: absolute;
  441. top: @group-member-picker-height;
  442. background-color: white;
  443. width: 100%;
  444. margin-top: var(--spacing-01);
  445. z-index: @z-index-group-member-picker-list;
  446. &[data-ol-plans-new-group-member-picker-dropdown='group-all'] {
  447. top: @group-member-picker-top-height;
  448. }
  449. }
  450. li.plans-new-group-member-picker-footer {
  451. font-size: var(--font-size-02);
  452. line-height: var(--line-height-02);
  453. padding: var(--spacing-05) var(--spacing-04);
  454. span {
  455. display: block;
  456. }
  457. button {
  458. font-weight: 400;
  459. padding: 0;
  460. font-size: var(--font-size-02);
  461. line-height: var(--line-height-02);
  462. }
  463. }
  464. li {
  465. position: relative;
  466. &:not(:last-child) {
  467. margin-bottom: var(--spacing-02);
  468. }
  469. &:not(.plans-new-group-member-picker-footer):hover {
  470. input[type='radio']:not(:checked) + p {
  471. background-color: var(--neutral-10);
  472. }
  473. }
  474. input[type='radio'] {
  475. position: absolute;
  476. opacity: 0;
  477. cursor: pointer;
  478. &:focus + p {
  479. &:extend(.input-focus-style);
  480. }
  481. + p {
  482. padding: var(--spacing-05) var(--spacing-08) var(--spacing-05)
  483. var(--spacing-04);
  484. margin-bottom: 0;
  485. border-radius: var(--border-radius-base-new);
  486. }
  487. }
  488. input[type='radio']:checked + p {
  489. background-color: var(--green-10);
  490. color: var(--green-70);
  491. position: relative;
  492. word-wrap: break-word;
  493. &::after {
  494. content: url(../../../public/img/material-icons/check-green-20.svg);
  495. position: absolute;
  496. right: 12px;
  497. top: 50%;
  498. transform: translateY(-50%);
  499. @media (max-width: @screen-sm-max) {
  500. right: var(--spacing-04);
  501. }
  502. }
  503. }
  504. label {
  505. width: 100%;
  506. font-size: var(--font-size-02);
  507. line-height: var(--line-height-02);
  508. margin-bottom: var(--spacing-00);
  509. font-weight: 400;
  510. cursor: pointer;
  511. border-radius: var(--border-radius-base-new);
  512. .list-item-footer {
  513. font-size: var(--font-size-01);
  514. line-height: var(--line-height-01);
  515. }
  516. }
  517. }
  518. .plans-new-edu-discount {
  519. display: flex;
  520. align-items: flex-start;
  521. gap: var(--spacing-04);
  522. margin-bottom: var(--spacing-06);
  523. font-weight: 400;
  524. input[type='checkbox'] {
  525. margin: var(--spacing-02);
  526. accent-color: var(--green-50);
  527. &:focus-visible {
  528. .box-shadow-button-input();
  529. }
  530. }
  531. .plans-new-edu-discount-content {
  532. display: flex;
  533. flex-direction: column;
  534. span {
  535. line-height: var(--line-height-03);
  536. color: var(--neutral-90);
  537. }
  538. small {
  539. color: var(--neutral-70);
  540. font-size: var(--font-size-01);
  541. line-height: var(--line-height-01);
  542. }
  543. }
  544. }
  545. }
  546. }
  547. .plans-new-table-body:last-of-type {
  548. .plans-new-table-feature-row:last-of-type {
  549. .plans-new-table-feature-td.plans-new-table-highlighted-cell {
  550. border-bottom: var(--border-width-base) solid var(--green-50);
  551. }
  552. }
  553. }
  554. .plans-new-table-heading-row {
  555. // this means min-height, min-height does not work in table layout
  556. // https://stackoverflow.com/questions/7790222
  557. height: 64px;
  558. }
  559. .plans-new-table-heading-text {
  560. padding: var(--spacing-05) var(--spacing-08) var(--spacing-05)
  561. var(--spacing-05);
  562. font-weight: 600;
  563. font-size: var(--font-size-04);
  564. line-height: var(--line-height-03);
  565. vertical-align: bottom;
  566. }
  567. .plans-new-table-feature-row {
  568. &:nth-child(even) {
  569. background-color: var(--neutral-10);
  570. }
  571. }
  572. .plans-new-table-section-without-header-row {
  573. &:nth-child(odd):not(.plans-new-table-heading-row) {
  574. background-color: var(--neutral-10);
  575. }
  576. &:nth-child(even):not(.plans-new-table-heading-row) {
  577. background-color: var(--white);
  578. }
  579. }
  580. .plans-new-table-feature-th {
  581. font-weight: normal;
  582. padding: var(--spacing-05) var(--spacing-08) var(--spacing-05)
  583. var(--spacing-05);
  584. .plans-new-table-feature-th-content {
  585. line-height: var(--line-height-03);
  586. display: flex;
  587. justify-content: space-between;
  588. align-items: center;
  589. .plans-new-table-feature-tooltip-icon {
  590. cursor: help;
  591. margin-left: var(--spacing-05);
  592. }
  593. .tooltip.in {
  594. opacity: 1;
  595. }
  596. .tooltip-inner {
  597. padding: var(--spacing-04) var(--spacing-06);
  598. max-width: 258px;
  599. width: 258px;
  600. font-family: Lato, sans-serif;
  601. font-size: var(--font-size-02);
  602. text-align: left;
  603. background-color: var(--neutral-90);
  604. border-radius: var(--border-radius-base-new);
  605. }
  606. }
  607. }
  608. .plans-new-table-feature-td {
  609. padding: var(--spacing-05) var(--spacing-08);
  610. text-align: center;
  611. line-height: var(--line-height-03);
  612. .green-round-background {
  613. margin-right: 0;
  614. }
  615. }
  616. .plans-new-table-highlighted-heading {
  617. position: absolute;
  618. left: calc(-1 * var(--border-width-base));
  619. top: -1 * @highlighted-heading-height;
  620. height: @highlighted-heading-height;
  621. width: calc(100% + (2 * var(--border-width-base)));
  622. border-top-left-radius: var(--border-radius-large-new);
  623. border-top-right-radius: var(--border-radius-large-new);
  624. padding: @highlighted-heading-padding-vertical var(--spacing-04);
  625. font-weight: 600;
  626. text-align: center;
  627. line-height: @highlighted-heading-line-height;
  628. background-color: var(--green-50);
  629. color: var(--white);
  630. font-size: var(--font-size-03);
  631. }
  632. .plans-new-table-highlighted-cell {
  633. border-right: var(--border-width-base) solid var(--green-50);
  634. border-left: var(--border-width-base) solid var(--green-50);
  635. }
  636. .plans-new-organizations {
  637. padding: var(--spacing-13) var(--spacing-08);
  638. .plans-new-organizations-text {
  639. text-align: center;
  640. font-size: var(--font-size-05);
  641. line-height: var(--line-height-04);
  642. margin-bottom: var(--spacing-00);
  643. }
  644. .plans-new-organizations-logo {
  645. margin-top: var(--spacing-09);
  646. display: flex;
  647. justify-content: space-around;
  648. align-items: center;
  649. @media (max-width: @screen-md-max) {
  650. flex-wrap: wrap;
  651. gap: 30px;
  652. }
  653. }
  654. }
  655. .plans-card-container-mobile {
  656. width: 100%;
  657. display: flex;
  658. flex-direction: column;
  659. gap: var(--spacing-06);
  660. .mt-spacing-06 {
  661. margin-top: var(--spacing-06);
  662. }
  663. .highlighted-plans-card {
  664. border: 2px solid var(--green-50) !important;
  665. }
  666. .plans-card-mobile {
  667. padding: var(--spacing-09);
  668. border: 2px solid var(--neutral-20);
  669. width: 100%; // might need max-width
  670. border-radius: 8px;
  671. display: flex;
  672. flex-direction: column;
  673. .plans-card-title-mobile {
  674. color: var(--neutral-90);
  675. font-size: var(--font-size-05); // 20px
  676. font-weight: 600;
  677. line-height: var(--line-height-04);
  678. }
  679. .plans-card-icon-container-mobile {
  680. margin-top: var(--spacing-04);
  681. .plans-card-icon {
  682. font-size: var(--font-size-09);
  683. color: var(--neutral-90);
  684. }
  685. }
  686. s {
  687. padding: var(--spacing-04) 0 0 0;
  688. color: var(--neutral-60);
  689. font-size: var(--font-size-04); // 18px
  690. font-weight: 600;
  691. line-height: var(--line-height-05);
  692. margin-bottom: var(--spacing-04);
  693. }
  694. .plans-card-price-container-mobile {
  695. display: flex;
  696. align-items: baseline;
  697. .light-gray-text:has(.billed-annually-disclaimer) {
  698. align-self: center;
  699. }
  700. }
  701. .group-plans-card-price-container-mobile {
  702. display: flex;
  703. align-items: center;
  704. }
  705. .plans-card-price-mobile {
  706. color: var(--neutral-90);
  707. font-size: var(--font-size-08); // 36px
  708. font-weight: 600;
  709. line-height: var(--line-height-07);
  710. margin-right: var(--spacing-03);
  711. }
  712. .light-gray-text {
  713. color: var(--neutral-70);
  714. font-size: var(--font-size-02); // 14px
  715. line-height: var(--line-height-02);
  716. }
  717. .plans-card-description-mobile {
  718. .green-round-background {
  719. width: 20px;
  720. height: 20px;
  721. }
  722. .plans-card-description-list-mobile {
  723. list-style-type: none;
  724. padding-left: 0;
  725. margin-bottom: unset;
  726. li {
  727. display: flex;
  728. margin-top: var(--spacing-05);
  729. }
  730. }
  731. .plans-card-cta-container {
  732. margin-top: var(--spacing-08);
  733. width: 100%;
  734. .btn-block + .btn-block {
  735. margin-top: var(--spacing-04);
  736. }
  737. }
  738. }
  739. }
  740. }
  741. .plans-new-group-tab-card-container {
  742. margin-top: var(--spacing-09);
  743. }
  744. .plans-features-table-section-container-mobile {
  745. margin-top: var(--spacing-13);
  746. .plans-features-section-heading-mobile {
  747. font-size: var(--font-size-06);
  748. font-weight: 600;
  749. line-height: var(--line-height-05);
  750. color: var(--neutral-90);
  751. text-align: center;
  752. margin-bottom: var(--spacing-08);
  753. }
  754. .plans-features-table-mobile {
  755. width: 100%;
  756. .plans-features-table-sticky-header {
  757. position: sticky;
  758. top: 0;
  759. }
  760. .plans-features-table-header {
  761. margin-bottom: var(--space-08);
  762. }
  763. .plans-features-table-header-container-mobile {
  764. margin: var(--spacing-08) auto;
  765. border-bottom: unset;
  766. width: 100%;
  767. max-width: 544px;
  768. .plans-features-table-header-item-mobile {
  769. width: 33%;
  770. min-width: 114px;
  771. padding: unset;
  772. .plans-features-table-header-item-content-mobile {
  773. padding: var(--spacing-04);
  774. text-align: center;
  775. background-color: var(--neutral-10);
  776. }
  777. .plans-group-features-table-header-item-content-mobile {
  778. padding: var(--spacing-04);
  779. text-align: center;
  780. background-color: var(--neutral-10);
  781. height: 64px;
  782. display: flex;
  783. justify-content: center;
  784. align-items: center;
  785. }
  786. .plans-features-table-header-item-title-mobile {
  787. color: var(--neutral-90);
  788. line-height: var(--line-height-03);
  789. font-weight: 600;
  790. font-size: var(--font-size-03);
  791. }
  792. .plans-features-table-header-item-price-mobile {
  793. font-weight: 400;
  794. color: var(--neutral-70);
  795. line-height: var(--line-height-01);
  796. font-size: var(--spacing-05);
  797. }
  798. }
  799. .highlighted-styles {
  800. background-color: var(--neutral-80);
  801. .plans-features-table-header-item-title-mobile,
  802. .plans-features-table-header-item-price-mobile {
  803. color: var(--white);
  804. }
  805. }
  806. .plans-features-table-header-item-content-mobile.highlighted,
  807. .plans-group-features-table-header-item-content-mobile.highlighted {
  808. .highlighted-styles;
  809. }
  810. }
  811. tr.plans-features-table-row-for-margin {
  812. height: var(--spacing-08);
  813. }
  814. .plans-features-table-body-container-mobile {
  815. .plans-features-table-row-heading-mobile {
  816. font-weight: 600;
  817. text-align: center;
  818. line-height: var(--line-height-03);
  819. .plans-features-table-row-section-heading-content-mobile {
  820. padding-top: var(--spacing-08);
  821. padding-bottom: var(--spacing-05);
  822. font-size: var(--font-size-04);
  823. color: var(--neutral-90);
  824. }
  825. }
  826. // .plans-features-table-row-title-mobile and .plans-features-table-row-mobile are combined together to make one row visually, so we are using factors of 4 to alternatively color their backgrounds.
  827. .plans-features-table-row-title-mobile {
  828. &.plans-features-table-row-title-mobile-without-heading {
  829. &:nth-child(4n - 3) {
  830. background-color: var(--neutral-10);
  831. }
  832. &:nth-child(4n - 1) {
  833. background-color: var(--white);
  834. }
  835. }
  836. &:nth-child(4n - 2) {
  837. background-color: var(--neutral-10);
  838. }
  839. &:nth-child(4n) {
  840. background-color: var(--white);
  841. }
  842. .plans-features-table-row-title-content-mobile {
  843. display: flex;
  844. justify-content: center;
  845. align-items: center;
  846. padding-top: var(--spacing-06);
  847. font-weight: 600;
  848. line-height: var(--line-height-03);
  849. .plans-features-table-row-title-accordion {
  850. display: flex;
  851. justify-content: center;
  852. flex-direction: column;
  853. align-items: center;
  854. text-align: center;
  855. padding: 0 var(--spacing-04);
  856. .plans-features-table-row-title-accordion-header {
  857. font-size: var(--font-size-03);
  858. font-weight: 600;
  859. line-height: var(--line-height-03);
  860. display: flex;
  861. justify-content: center;
  862. background-color: unset;
  863. border: unset;
  864. .plans-features-table-row-title-accordion-icon {
  865. display: flex;
  866. align-items: center;
  867. transition: transform 0.35s ease;
  868. margin-left: var(--spacing-02);
  869. }
  870. &:not(.collapsed) {
  871. .plans-features-table-row-title-accordion-icon {
  872. transform: rotate(180deg);
  873. transition: transform 0.35s ease;
  874. }
  875. }
  876. }
  877. .plans-features-table-row-title-accordion-body {
  878. font-size: var(--font-size-01);
  879. line-height: var(--line-height-01);
  880. font-weight: 400;
  881. }
  882. }
  883. }
  884. }
  885. .plans-features-table-row-mobile {
  886. &.plans-features-table-row-mobile-without-heading {
  887. &:nth-child(4n - 2) {
  888. background-color: var(--neutral-10);
  889. }
  890. &:nth-child(4n) {
  891. background-color: var(--white);
  892. }
  893. }
  894. &:nth-child(4n - 3) {
  895. background-color: var(--white);
  896. }
  897. &:nth-child(4n - 1) {
  898. background-color: var(--neutral-10);
  899. }
  900. .plans-features-table-cell-content-mobile {
  901. text-align: center;
  902. padding-top: var(--spacing-05);
  903. padding-bottom: var(--spacing-06);
  904. }
  905. }
  906. }
  907. }
  908. }
  909. .plans-price-disclaimer {
  910. font-size: var(--font-size-01);
  911. line-height: var(--line-height-01);
  912. margin-top: var(--spacing-08);
  913. text-align: center;
  914. &:last-child {
  915. margin-bottom: var(--spacing-11);
  916. }
  917. &:not(:last-child) {
  918. margin-bottom: var(--spacing-08);
  919. }
  920. .plans-price-disclaimer-icons {
  921. display: flex;
  922. justify-content: center;
  923. gap: var(--spacing-04);
  924. }
  925. }
  926. .only-show-for-specific-plan-type {
  927. display: none;
  928. }
  929. &[data-ol-current-plan-type='group'] {
  930. .show-for-plan-type-group {
  931. display: block;
  932. }
  933. }
  934. &[data-ol-current-plan-type='individual'] {
  935. .show-for-plan-type-individual {
  936. display: block;
  937. }
  938. }
  939. &[data-ol-current-plan-type='student'] {
  940. .show-for-plan-type-student {
  941. display: block;
  942. }
  943. }
  944. .only-show-for-specific-plan-period {
  945. display: none;
  946. }
  947. &[data-ol-current-plan-period='annual'] {
  948. .show-for-plan-period-annual {
  949. display: block;
  950. }
  951. }
  952. &[data-ol-current-plan-period='monthly'] {
  953. .show-for-plan-period-monthly {
  954. display: block;
  955. }
  956. }
  957. }
  958. .plans-overleaf-common-request {
  959. color: var(--neutral-90);
  960. display: flex;
  961. align-items: center;
  962. justify-content: center;
  963. margin: var(--spacing-04) var(--spacing-08);
  964. text-align: center;
  965. gap: var(--spacing-06);
  966. @media (max-width: @screen-xs-max) {
  967. flex-direction: column;
  968. margin: 0;
  969. }
  970. a {
  971. font-size: var(--font-size-02);
  972. line-height: var(--line-height-02);
  973. }
  974. }
  975. .plans-faq {
  976. .faq-heading-container {
  977. text-align: center;
  978. margin-bottom: var(--spacing-10);
  979. @media (max-width: @screen-xs-max) {
  980. text-align: unset;
  981. }
  982. }
  983. .plans-faq-support {
  984. margin-top: var(--spacing-06);
  985. margin-bottom: var(--spacing-06);
  986. display: flex;
  987. flex-direction: column;
  988. align-items: center;
  989. gap: var(--spacing-04);
  990. span {
  991. line-height: var(--line-height-03);
  992. font-size: var(--font-size-04);
  993. }
  994. button {
  995. font-family: 'DM Mono', monospace;
  996. font-weight: 500;
  997. text-decoration: none;
  998. color: var(--green-50);
  999. line-height: var(--line-height-03);
  1000. font-size: var(--font-size-04);
  1001. background-color: var(--white);
  1002. border: unset;
  1003. display: flex;
  1004. align-items: center;
  1005. }
  1006. }
  1007. }
  1008. .plans-new-design.plans-interstitial-new-design {
  1009. padding-top: var(--header-height);
  1010. padding-bottom: var(--spacing-09);
  1011. .plans-interstitial-new-content {
  1012. display: flex;
  1013. flex-direction: column;
  1014. align-items: center;
  1015. }
  1016. .plans-new-table {
  1017. th,
  1018. td {
  1019. width: @table-5-column-width;
  1020. }
  1021. }
  1022. }